Na prática, o motivo mais comum para isso acontecer parece ser o fato de o arquivo .rnd no diretório inicial pertencer à raiz e não à sua conta. A solução rápida:
sudo rm ~/.rnd
Para mais informações, aqui está a entrada da FAQ do OpenSSL :
Às vezes, o utilitário de linha de comando openssl não interrompe com uma mensagem de erro "PRNG não propagada", mas reclama que é "incapaz de gravar 'estado aleatório'". Esta mensagem refere-se ao arquivo de propagação padrão (consulte a resposta anterior). Um possível motivo é que nenhum nome de arquivo padrão é conhecido porque nem RANDFILE nem HOME estão definidos. (Versões até 0.9.6 usavam o arquivo ".rnd" no diretório atual nesse caso, mas isso foi alterado com 0.9.6a.)
Então, eu verificaria RANDFILE, HOME e permissões para gravar nesses locais no sistema de arquivos.
Se tudo parece estar em ordem, você pode tentar correr com strace e ver o que exatamente está acontecendo.
sudo chown user:user ~/.rnd
fez tudo dar certo.sudo
coisa e funcionou. Mas por que ainda tenho um.rnd
diretório iwned pela raiz no meu $ HOME depois de criar um certificado autoassinado?/var/www/.rnd
e exibindo-awww-data
. (Supondo que/var/www
sejawww-data
a pasta inicial da pasta, que está na maioria dos sistemas. Você pode verificarwww-data
a pasta pessoal comcat /etc/passwd | grep www-data
) #Eu sei que esta pergunta está no Linux, mas no Windows eu tive o mesmo problema. Acontece que você precisa iniciar o prompt de comando no modo "Executar como administrador" para que ele funcione. Caso contrário, você obtém o mesmo: incapaz de gravar o erro 'estado aleatório'.
fonte
set RANDFILE=.rnd
antes de executaropenssl
.$env:RANDFILE=".rnd"
melhor queset RANDFILE=.rnd
.Mais um problema na plataforma Windows: verifique se você está executando o prompt de comando como Usuário Administrativo!
Eu não sei quantas vezes isso me mordeu ...
fonte
Aparentemente, eu precisava executar o OpenSSL como root para ter permissão para o arquivo de propagação.
fonte
Eu tinha a mesma coisa no servidor Windows. Então eu descobri mudando o
vars.bat
que é:refaça do começo e tudo ficará bem.
fonte
set HOME=.
O problema para mim era que eu tinha .rnd no meu diretório pessoal, mas era de propriedade do root. A exclusão e a reemissão do comando openssl corrigiram isso.
fonte
Você deve definir a variável de ambiente $ RANDFILE e / ou criar o arquivo $ HOME / .rnd. ( FAQ do OpenSSL ). (Obviamente, você deve ter direitos sobre esse arquivo. Outras respostas aqui são sobre isso. Mas primeiro você deve ter o arquivo e fazer uma referência a ele.)
Até a versão 0.9.6, o OpenSSL gravou o arquivo de propagação no diretório atual no arquivo ".rnd". Na versão 0.9.6a, você não possui um arquivo de propagação padrão. O OpenSSL 0.9.6be posterior comportará-se de maneira semelhante a 0.9.6a, mas usará o padrão "C: \" para HOME nos sistemas Windows se a variável de ambiente não tiver sido definida.
Se o arquivo de propagação padrão não existir ou for muito curto, a mensagem de erro "PRNG não propagada" pode ocorrer.
A variável de ambiente $ RANDFILE e $ HOME / .rnd são usadas apenas pelas ferramentas de linha de comando do OpenSSL. Os aplicativos que usam a biblioteca OpenSSL fornecem suas próprias opções de configuração para especificar a fonte de entropia; confira a documentação que acompanha o aplicativo.
fonte
Hoje deparei com esse problema na AWS Lambda. Criei uma variável de ambiente RANDFILE = /tmp/.random
Isso fez o truque.
fonte