web-dev-qa-db-fra.com

Comment réparer "incapable d'écrire 'état aléatoire'" dans openssl

Lors de la génération de la clé privée à l'aide de cette commande

genrsa -out my-prvkey.pem 1024

Il jette l'erreur comme ci-dessous

Loadind 'screen' à l'état aléatoire -done Génération d'une clé privée RSA, module de 1024 bits de long ................................ ......... +++++++ ........................... +++++++ ++ incapable d'écrire 'état aléatoire' e est 65537 (0 * 10001)

Cela rend tout problème lors de la création d'un certificat public. J'exécute cette commande dans Windows. Quelqu'un peut-il m'aider pour la solution?

69
arok

La solution la plus rapide est la suivante: set variable d’environnement RANDFILE chemin vers le fichier dans lequel le fichier "état aléatoire" peut être écrit (bien sûr, vérifiez les autorisations d’accès au fichier), par exemple. dans votre invite de commande:

set RANDFILE=C:\MyDir\.rnd
openssl genrsa -out my-prvkey.pem 1024

Plus d'explications: OpenSSL sur Windows essaie de sauvegarder le fichier 'état aléatoire' dans l'ordre suivant:

  1. Chemin emprunté depuis RANDFILE variable d'environnement
  2. Si HOME la variable d'environnement est définie, alors: $ {HOME} \. Rnd
  3. C: \. Rnd

Je suis à peu près sûr que dans votre cas, il finira par essayer de le sauvegarder dans C: \. Rnd (et cela échouera faute de droits d'accès suffisants. ) Malheureusement, OpenSSL n’imprime pas le chemin qu’il essaie réellement d’utiliser dans les messages d’erreur.

106
sirgeorge

entrez simplement cette ligne dans la ligne de commande:

set RANDFILE=.rnd
28
eliprodigy

Il se peut également que vous deviez exécuter la console en tant qu'administrateur. Sur Windows 7, maintenez ctrl+shift lorsque vous lancez la fenêtre de la console.

28
alile

Ou ceci dans windows powershell

$env:RANDFILE=".rnd"
4
konzo

Je n'ai pas trouvé où se trouve le fichier .rnd, j'ai donc lancé la commande cmd en tant qu'administrateur et cela a fonctionné à merveille.

3
Vu Doan