Al utilizar OpenSSL, ¿qué significa "no se puede escribir 'estado aleatorio'"?

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

  •  01-07-2019
  •  | 
  •  

Pregunta

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

incapaz de escribir 'estado aleatorio'

¿Qué quiere decir esto?

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

¿Fue útil?

Solución

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

sudo rm ~/.rnd

Para más información aquí tenéis la entrada del Preguntas frecuentes sobre OpenSSL:

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

Entonces verificaría RANDFILE, HOME y los permisos para escribir en esos lugares del sistema de archivos.

Si todo parece estar en orden, puedes intentar ejecutar con rastro y ver qué está pasando exactamente.

Otros consejos

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

Otro problema en la plataforma Windows: ¡asegúrese de ejecutar el símbolo del sistema como usuario administrativo!

No sé cuantas veces me ha picado esto...

Aparentemente, necesitaba ejecutar OpenSSL como root para que tuviera permiso para el archivo de inicialización.

Tuve lo mismo en el servidor de Windows.Luego lo descubrí cambiando el vars.bat cual es:

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

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

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

Debe configurar la variable de entorno $RANDFILE y/o crear el archivo $HOME/.rnd.(Preguntas frecuentes sobre OpenSSL). (Por supuesto, deberías tener derechos sobre ese archivo.Otras respuestas aquí son sobre eso.Pero primero deberías tener el archivo y una referencia al mismo.)

Hasta la versión 0.9.6, OpenSSL escribía 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 utilizarán el valor predeterminado "C:\" para HOME en sistemas Windows si no se ha configurado la variable de entorno.

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 las utilizan 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 la fuente de entropía; consulte la documentación que viene con la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top