À l'aide d'OpenSSL ce qui ne “impossible d'écrire "aléatoire" d'état” signifie?
Je suis de la génération d'un certificat SSL auto-signé pour protéger mon serveur d'administration de la section, et je reçois ce message d'OpenSSL:
incapable d'écrire "aléatoire" d'état
Qu'est-ce que cela signifie?
C'est sur un serveur Ubuntu. J'ai mis à jour libssl de fixer la récente faille de sécurité.
Vous devez vous connecter pour publier un commentaire.
Dans la pratique, la raison la plus courante pour ce qui se passe semble être que les .rnd fichier dans votre répertoire de base est la propriété de la racine plutôt que de votre compte. La solution rapide:
Pour plus d'informations, voici l'entrée de la OpenSSL FAQ:
Donc, je voudrais vérifier RANDFILE, à la MAISON, et les autorisations d'écrire ces endroits dans le système de fichiers.
Si tout semble être en ordre, vous pouvez essayer de courir avec strace et de voir ce qui se passe exactement.
sudo chown user:user ~/.rnd
fait tout le travail.sudo
chose et cela a fonctionné. Mais pourquoi dois-je toujours un.rnd
répertoire iwned par racine dans mon $HOME après j'ai créer un certificat auto-signé ?/var/www/.rnd
et chowning àwww-data
. (En supposant que/var/www
estwww-data
domicile dossier, qu'il est sur la plupart des systèmes. Vous pouvez le vérifierwww-data
domicile dossier aveccat /etc/passwd | grep www-data
)/dev/arandom
(voir stackoverflow.com/questions/12886646/what-is-dev-arandom) existe avant de passer à/dev/random
ou/dev/urandom
. J'imagine que si OpenSSL ne pouvais vraiment pas trouver un hasard de l'appareil pour ouvrir, il serait jeter un autre (critique) erreur. Chercher quelque chose qui serait à l'origine; netouch ~/.rnd
et voir si vous obtenez un message d'erreur. Pour moi, j'avais faitsudo -su [username]
lancer un interpréteur de commandes en tant qu'utilisateur différent, mais le $HOME variable était toujours à ma propre répertoire home de l'utilisateur, l'autre utilisateur ne pouvais pas accéder.Je sais que cette question est sur Linux, mais sous 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 le même: impossible d'écrire "aléatoire" d'état d'erreur.
set RANDFILE=.rnd
avant l'exécution deopenssl
.$env:RANDFILE=".rnd"
plutôt queset RANDFILE=.rnd
.Une autre question sur la plate-forme Windows, assurez-vous que vous exécutez votre invite de commande en tant qu'Utilisateur administrateur!
Je ne sais pas combien de fois cela m'a mordu...
Apparemment, j'nécessaires à l'exécution de OpenSSL en tant que root pour avoir l'autorisation de l'ensemencement de fichier.
J'ai eu la même chose sur windows server. Puis j'ai compris par la modification de la
vars.bat
qui est:puis recommencer depuis le début et tout devrait bien se passer.
set HOME=.
Le problème pour moi est que j'ai eu .rnd dans mon répertoire de base, mais il a été possédé par la racine. De le supprimer et de rééditer la commande openssl fixe cette.
Vous devez définir l' $RANDFILE variable d'environnement et/ou de créer un $HOME/.rnd fichier. (OpenSSL FAQ). (De sûr, vous devriez avoir les 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 semis fichier dans le répertoire courant dans le fichier ".rnd". À la version 0.9.6 un vous n'avez pas de défaut de semis de fichier. OpenSSL 0.9.6 b et, plus tard, va se comporter de la même manière à 0.9.6 un, mais l'utilisation d'une valeur par défaut de "C:\" pour la MAISON sur les systèmes Windows si la variable d'environnement n'a pas été définie.
Si la valeur par défaut de semis fichier n'existe pas ou est trop court, le "GÉNÉRATEUR de ne pas têtes de série" message d'erreur peut se produire.
L' $RANDFILE variable d'environnement et $HOME/.rnd ne sont utilisés que par la ligne de commande OpenSSL outils. Les Applications utilisant la bibliothèque OpenSSL fournir leurs propres options de configuration pour spécifier la source d'entropie, s'il vous plaît consulter la documentation de l'application.