Utiliser OpenSSL que signifie" Impossible d'écrire "état aléatoire"?

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

Incapable d'écrire 'état aléatoire'

Qu'est-ce que cela signifie?

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

346
demandé sur Mark Amery 2008-09-18 20:56:43

7 réponses

Dans la pratique, la raison la plus courante de ce qui se passe semble être que le .le fichier rnd de votre répertoire personnel appartient à root plutôt qu'à 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 message D'erreur" PRNG not seeded", mais se plaint qu'il est "incapable d'écrire 'random state'". Ce message fait référence au fichier d'ensemencement par défaut (voir 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. (Versions jusqu'à 0.9.6 fichier utilisé".rnd" dans le répertoire courant dans ce cas, mais cela a changé avec 0.9.6 un.)

Donc, je vérifierais RANDFILE, HOME et les autorisations pour écrire à ces endroits dans le système de fichiers.

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

494
répondu Ville Laurikari 2011-06-10 10:08:56

Je sais que cette question Est sur Linux, mais sur windows j'ai eu le même problème. S'avère que vous avez pour démarrer l'invite de commande dans "Exécuter en tant Qu'Administrateur" pour que cela fonctionne. Sinon, vous obtenez la même chose: impossible d'écrire une erreur 'état aléatoire'.

220
répondu Beachhouse 2011-11-21 18:25:23

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...

34
répondu joel 2012-04-25 13:23:07

Apparemment, j'avais besoin d'exécuter OpenSSL en tant que root pour qu'il ait l'Autorisation du fichier d'ensemencement.

15
répondu Luke Francl 2014-04-14 14:19:14

J'ai eu la même chose sur windows server. Ensuite, j'ai compris en changeant le vars.bat qui est:

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

Puis refaire depuis le début et tout devrait aller bien.

12
répondu Jusuf 2011-12-18 15:06:26

Le problème pour moi était que j'avais .rnd dans mon répertoire personnel mais il appartenait à root. La suppression et la réédition de la commande openssl ont corrigé cela.

6
répondu Zds 2011-04-04 10:26:42

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

Jusqu'à la version 0.9.6 OpenSSL a écrit le fichier d'ensemencement dans le répertoire courant dans le fichier".rnd". À la version 0.9.6 a, vous n'avez pas de fichier d'ensemencement par défaut. OpenSSL 0.9.6 b et versions ultérieures se comporteront de la même manière que 0.9.6 a, mais utiliseront a par défaut de "C:\" Pour HOME sur les systèmes Windows si la variable d'environnement n'a pas été définie.

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

La variable d'environnement $ RANDFILE et $ HOME/.rnd sont uniquement utilisés 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 à venir avec application.

2
répondu Gangnus 2018-01-16 21:19:03