En utilisant OpenSSL, qu'est-ce qui ne permet pas d'écrire 'état aléatoire' & # 8221; signifier?

StackOverflow https://stackoverflow.com/questions/94445

  •  01-07-2019
  •  | 
  •  

Question

Je génère un certificat SSL auto-signé pour protéger la section d'administration de mon serveur et je reçois ce message de OpenSSL:

  

impossible d'écrire 'état aléatoire'

Qu'est-ce que cela signifie?

Ceci est sur un serveur Ubuntu. J'ai mis à niveau libssl pour corriger la vulnérabilité de sécurité récente .

Était-ce utile?

La solution

En pratique, la raison la plus courante semble être que le fichier .rnd de votre répertoire personnel appartient à root et non à votre compte. La solution rapide:

sudo rm ~/.rnd

Pour plus d'informations, voici l'entrée de la FAQ OpenSSL :

  

Parfois, l'utilitaire de ligne de commande openssl n'abandonne pas avec un "PRNG non ensemencé". message d'erreur, mais se plaint qu'il est "incapable d'écrire" état aléatoire "". Ce message fait référence au fichier de répartition par défaut (voir la réponse précédente). Une raison possible est qu'aucun nom de fichier par défaut n'est connu car ni RANDFILE ni HOME n'est défini. (Dans ce cas, les versions allant jusqu'à 0.9.6 utilisaient le fichier ".rnd" dans le répertoire en cours, mais cela a changé avec la version 0.9.6a.)

Je vérifiais donc les fichiers RANDFILE, HOME et les autorisations nécessaires pour écrire dans ces emplacements du système de fichiers.

Si tout semble être en ordre, vous pouvez essayer de lancer avec strace pour voir ce qui se passe exactement. se passe.

Autres conseils

Je sais que cette question concerne Linux, mais le problème est le même sous Windows. Il s'avère que vous devez démarrer l'invite de commande dans " Exécuter en tant qu'administrateur " mode pour que cela fonctionne. Sinon, vous obtenez le même résultat: impossible d'écrire l'erreur «état aléatoire».

Un autre problème sur la plate-forme Windows, assurez-vous que vous exécutez votre invite de commande en tant qu'utilisateur administratif!

Je ne sais pas combien de fois cela m'a mordu ...

Apparemment, j’avais besoin d’exécuter OpenSSL en tant que root pour que celui-ci soit autorisé à utiliser le fichier .SEM.

J'ai eu la même chose sur Windows Server. Ensuite, j'ai résolu le problème en modifiant le vars.bat qui est:

set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa

puis recommencez depuis le début et tout devrait bien se passer.

Le problème pour moi était que j'avais .rnd dans mon répertoire personnel mais qu'il appartenait à root. Le supprimer et réémettre la commande openssl a corrigé le problème.

Vous devez définir la variable d’environnement $ RANDFILE et / ou créer le fichier $ HOME / .rnd. ( FAQ OpenSSL ). (Bien sûr, vous devriez avoir des droits sur ce fichier. D'autres réponses à ce sujet le sont. Mais vous devriez d'abord avoir le fichier et une référence.)

Jusqu'à la version 0.9.6, OpenSSL écrivait le fichier de séquence dans le répertoire actuel du fichier ".rnd". Avec la version 0.9.6a, vous n'avez pas de fichier d'amorçage par défaut. OpenSSL 0.9.6b et versions ultérieures se comporteront de la même manière que 0.9.6a, mais utiliseront la valeur par défaut "C: \". pour HOME sur les systèmes Windows si la variable d’environnement n’a pas été définie.

Si le fichier de répartition par défaut n'existe pas ou est trop court, le message "PRNG non ensemencé" message d'erreur peut se produire.

La variable d'environnement $ RANDFILE et $ HOME / .rnd ne sont utilisées que par les outils de ligne de commande OpenSSL. Les applications utilisant la bibliothèque OpenSSL fournissent leurs propres options de configuration pour spécifier la source d'entropie. Veuillez consulter la documentation fournie avec l'application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top