In der Praxis scheint der häufigste Grund dafür zu sein, dass die .rnd-Datei in Ihrem Home-Verzeichnis eher root als Ihrem Konto gehört. Die schnelle Lösung:
sudo rm ~/.rnd
Weitere Informationen finden Sie im Eintrag aus den OpenSSL-FAQ :
Manchmal bricht das Befehlszeilenprogramm openssl nicht mit der Fehlermeldung "PRNG not seeded" ab, sondern beschwert sich darüber, dass es nicht in der Lage ist, einen "zufälligen Status" zu schreiben. Diese Nachricht bezieht sich auf die Standard-Seeding-Datei (siehe vorherige Antwort). Ein möglicher Grund ist, dass kein Standarddateiname bekannt ist, da weder RANDFILE noch HOME festgelegt sind. (In Versionen bis 0.9.6 wurde in diesem Fall die Datei ".rnd" im aktuellen Verzeichnis verwendet, dies hat sich jedoch mit 0.9.6a geändert.)
Also würde ich RANDFILE, HOME und die Berechtigungen zum Schreiben an diese Stellen im Dateisystem überprüfen.
Wenn alles in Ordnung zu sein scheint, können Sie versuchen, mit Strace zu laufen und zu sehen, was genau los ist.
sudo chown user:user ~/.rnd
hat alles geklappt.sudo
Ding gemacht und es hat funktioniert. Aber warum habe ich.rnd
nach dem Erstellen eines selbstsignierten Zertifikats immer noch ein Verzeichnis, das von root in meinem $ HOME erstellt wurde?/var/www/.rnd
und in chowning umwandelnwww-data
. (Angenommen, dies/var/www
istwww-data
der Home-Ordner, den es auf den meisten Systemen gibt. Sie könnenwww-data
den Home-Ordner mit überprüfencat /etc/passwd | grep www-data
)Ich weiß, dass diese Frage unter Linux gestellt wird, aber unter Windows hatte ich das gleiche Problem. Es stellt sich heraus, dass Sie die Eingabeaufforderung im Modus "Als Administrator ausführen" starten müssen, damit sie funktioniert. Andernfalls erhalten Sie das gleiche: Es kann kein Fehler "Zufallsstatus" geschrieben werden.
quelle
set RANDFILE=.rnd
vor der Ausführung eine andere Lösung wählenopenssl
.$env:RANDFILE=".rnd"
eher alsset RANDFILE=.rnd
.Ein weiteres Problem auf der Windows-Plattform: Stellen Sie sicher, dass Sie Ihre Eingabeaufforderung als Administrator ausführen.
Ich weiß nicht, wie oft mich das gebissen hat ...
quelle
Anscheinend musste ich OpenSSL als root ausführen, damit es die Berechtigung für die Seeding-Datei hatte.
quelle
Ich hatte das gleiche auf Windows Server. Dann habe ich herausgefunden, indem ich Folgendes geändert habe
vars.bat
:dann von Anfang an wiederholen und alles sollte in Ordnung sein.
quelle
set HOME=.
Das Problem für mich war, dass ich .rnd in meinem Home-Verzeichnis hatte, aber es gehörte root. Das Löschen und erneute Ausgeben des Befehls openssl hat dies behoben.
quelle
Sie sollten die Umgebungsvariable $ RANDFILE festlegen und / oder die Datei $ HOME / .rnd erstellen. ( OpenSSL FAQ ). (Natürlich sollten Sie Rechte an dieser Datei haben. Andere Antworten hier beziehen sich darauf. Aber zuerst sollten Sie die Datei und einen Verweis darauf haben.)
Bis zur Version 0.9.6 hat OpenSSL die Seeding-Datei in das aktuelle Verzeichnis in der Datei ".rnd" geschrieben. In Version 0.9.6a haben Sie keine Standard-Seeding-Datei. OpenSSL 0.9.6b und höher verhält sich ähnlich wie 0.9.6a, verwendet jedoch auf Windows-Systemen den Standardwert "C: \" für HOME, wenn die Umgebungsvariable nicht festgelegt wurde.
Wenn die Standard-Seeding-Datei nicht vorhanden oder zu kurz ist, kann die Fehlermeldung "PRNG nicht gesät" auftreten.
Die Umgebungsvariablen $ RANDFILE und $ HOME / .rnd werden nur von den OpenSSL-Befehlszeilentools verwendet. Anwendungen, die die OpenSSL-Bibliothek verwenden, bieten ihre eigenen Konfigurationsoptionen zur Angabe der Entropiequelle. Weitere Informationen finden Sie in der Dokumentation, die mit der Anwendung geliefert wird.
quelle
Ich bin heute auf AWS Lambda auf dieses Problem gestoßen. Ich habe eine Umgebungsvariable RANDFILE = /tmp/.random erstellt
Das hat funktioniert.
quelle