write unable rng rnd into openssl

unable - Usando OpenSSL, ¿qué significa "incapaz de escribir ''estado aleatorio'' ''?



openssl can t load.rnd into rng windows (7)

Estoy generando un certificado SSL autofirmado para proteger la sección de administración de mi servidor y continúo recibiendo este mensaje de OpenSSL:

incapaz de escribir ''estado aleatorio''

¿Qué significa esto?

Esto está en un servidor de Ubuntu. He actualizado libssl para corregir la vulnerabilidad de seguridad reciente .


Aparentemente, necesitaba ejecutar OpenSSL como root para que tenga permiso para el archivo de inicio.


Debe establecer la variable de entorno $ RANDFILE y / o crear el archivo $ HOME / .rnd. ( Preguntas frecuentes de OpenSSL ). (Por supuesto, debe tener derechos sobre ese archivo. Otras respuestas aquí son sobre eso. Pero primero debe tener el archivo y una referencia a él).

Hasta la versión 0.9.6, OpenSSL escribió el archivo de inicialización en el directorio actual en el archivo ".rnd". En la versión 0.9.6a no tiene un archivo de inicialización predeterminado. OpenSSL 0.9.6b y posteriores se comportarán de manera similar a 0.9.6a, pero usarán un valor predeterminado de "C: /" para INICIO en sistemas Windows si la variable de entorno no se ha establecido.

Si el archivo de inicialización predeterminado no existe o es demasiado corto, puede aparecer el mensaje de error "PRNG no inicializado".

La variable de entorno $ RANDFILE y $ HOME / .rnd solo son utilizadas por las herramientas de línea de comandos de OpenSSL. Las aplicaciones que utilizan la biblioteca OpenSSL proporcionan sus propias opciones de configuración para especificar el origen de la entropía, consulte la documentación que viene con la aplicación.


El problema para mí fue que tenía .rnd en mi directorio de inicio pero era propiedad de root. Al eliminarlo y volver a emitir el comando openssl se solucionó esto.


En la práctica, la razón más común para que esto ocurra parece ser que el archivo .rnd en su directorio de inicio es propiedad de root en lugar de su cuenta. La solución rápida:

sudo rm ~/.rnd

Para obtener más información, aquí está la entrada de las preguntas frecuentes de OpenSSL :

A veces, la utilidad de línea de comandos openssl no se cancela con un mensaje de error "PRNG no inicializado", pero se queja de que "no puede escribir ''estado aleatorio''". Este mensaje hace referencia al archivo de inicialización predeterminado (ver respuesta anterior). Una posible razón es que no se conoce ningún nombre de archivo predeterminado porque ni RANDFILE ni HOME están configurados. (En este caso, las versiones de hasta 0.9.6 utilizaron el archivo ".rnd" en el directorio actual, pero esto ha cambiado con 0.9.6a.)

Así que revisaría RANDFILE, HOME y los permisos para escribir en esos lugares en el sistema de archivos.

Si todo parece estar en orden, puedes intentar correr con strace y ver qué está sucediendo exactamente.


Otro problema en la plataforma de Windows, ¡asegúrese de que está ejecutando su símbolo del sistema como usuario administrativo!

No sé cuántas veces me ha mordido esto.


Sé que esta pregunta es sobre Linux, pero en Windows tuve el mismo problema. Resulta que tiene que iniciar el símbolo del sistema en el modo "Ejecutar como administrador" para que funcione. De lo contrario, obtienes lo mismo: no se puede escribir el error ''estado aleatorio''.


Tuve lo mismo en el servidor de Windows. Luego me di cuenta cambiando los vars.bat que es:

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

luego rehacer desde el principio y todo debería estar bien.