Mit OpenSSL, was „nicht in der Lage zu‚zufälligen Zustand‘schreiben“ bedeutet?
-
01-07-2019 - |
Frage
Ich bin ein selbst signiertes SSL-Zertifikat erzeugt mein Server des Admin-Bereich zu schützen, und ich bekomme immer wieder diese Nachricht von OpenSSL:
nicht in der Lage 'zufälligen Zustand'
schreiben
Was bedeutet das?
Dies ist auf einem Ubuntu-Server. Ich habe libssl aktualisiert die jüngste Sicherheitslücke .
Lösung
In der Praxis der häufigste Grund für dieses Ereignis scheint zu sein, dass die .rnd Datei in Ihrem Home-Verzeichnis von root gehört und nicht Ihrem Konto. Die schnelle Lösung:
sudo rm ~/.rnd
Für weitere Informationen, hier ist der Eintrag aus der OpenSSL FAQ :
Manchmal ist das OpenSSL Kommandozeilen-Programm nicht mit einer „PRNG nicht ausgesät“ Fehlermeldung abbrechen, beklagt aber, dass es „‚random state‘zu schreiben, nicht in der Lage“ ist. Diese Nachricht bezieht sich auf die Standard-Seeding-Datei (siehe vorherige Antwort). Ein möglicher Grund ist, dass kein Standarddateiname ist bekannt, weil weder RANDFILE noch HOME gesetzt. (Versionen bis 0.9.6 verwendete Datei „.rnd“ im aktuellen Verzeichnis in diesem Fall, aber das hat mit 0.9.6a geändert.)
So würde ich überprüfen RANDFILE, HOME, und Berechtigungen für diese Orte im Dateisystem zu schreiben.
Wenn alles in Ordnung zu sein scheint, könnten Sie laufen versuchen, mit Strace und sehen, was genau vor sich geht.
Andere Tipps
Ich weiß, diese Frage auf Linux, aber auf Windows hatte ich das gleiche Problem. Es stellte sich heraus Sie die Eingabeaufforderung in „Ausführen als Administrator“ gestartet haben, damit es funktioniert. Ansonsten erhalten Sie das gleiche. Nicht in der Lage ‚zufälligen Zustand‘ Fehler zu schreiben
Ein weiteres Thema auf der Windows-Plattform, stellen Sie sicher, dass Sie Ihre Eingabeaufforderung als Administrator ausgeführt werden!
Ich weiß nicht, wie oft dies hat mich gebissen ...
Offenbar brauchte ich OpenSSL als root laufen, um für sie die Erlaubnis zum Impfen Datei haben.
Ich hatte die gleiche Sache auf Windows-Server. Dann habe ich herausgefunden, indem die vars.bat
Veränderung, die lautet:
set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa
dann Redo von Anfang und alles sollte in Ordnung sein.
Das Problem für mich war, dass ich in meinem Home-Verzeichnis .rnd hatte, aber es war im Besitz von Root. Sie löschen und Neuausstellung der openssl Befehl fixiert diese.
Sie sollten die $ RANDFILE Umgebungsvariable und / oder $ HOME / .rnd Datei erstellen. ( OpenSSL FAQ ). (Natürlich sollten Sie die Rechte auf diese Datei haben. Andere Antworten hier sind darüber. Aber zuerst sollten Sie die Datei und einen Verweis auf sie haben.)
Bis zur Version 0.9.6 OpenSSL schrieb die Seeding-Datei im aktuellen Verzeichnis in der Datei ".rnd". Bei Version 0.9.6a haben Sie keine Standard-Seeding-Datei. OpenSSL 0.9.6b und später verhalten sich ähnlich wie 0.9.6a, sondern eine Vorgabe von „C: \“ verwenden für HOME auf Windows-Systemen, wenn die Umgebungsvariable nicht gesetzt wurde.
Wenn die Standard-Seeding-Datei nicht existiert oder zu kurz ist, die „PRNG nicht ausgesät“ Fehlermeldung auftreten.
Die $ RANDFILE Umgebungsvariable und $ HOME / .rnd werden nur durch die OpenSSL Kommandozeilen-Tools verwendet. Anwendungen unter Verwendung der OpenSSL-Bibliothek stellen ihre eigenen Konfigurationsoptionen die Entropie Quelle angeben, überprüfen Sie bitte die Dokumentation kommen die mit der Anwendung aus.