Usando OpenSSL o que significa “incapaz de escrever 'estado aleatório'” significa?

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

  •  01-07-2019
  •  | 
  •  

Pergunta

Estou gerar um certificado SSL auto-assinado para proteger seção de administração do meu servidor, e eu continuo recebendo esta mensagem do OpenSSL:

incapaz de escrever 'estado aleatório'

O que isso significa?

Esta é em um servidor Ubuntu. Tenho atualizado libssl para correção a recente vulnerabilidade de segurança .

Foi útil?

Solução

Na prática, o motivo mais comum para este acontecimento parece ser que o arquivo .rnd em seu diretório home é propriedade de raiz em vez de sua conta. A correção rápida:

sudo rm ~/.rnd

Para obter mais informações, aqui está a entrada do OpenSSL FAQ :

Às vezes o utilitário de linha de comando openssl não abortar com uma mensagem de erro "PRNG não semeado", mas reclama que ele é "incapaz de escrever 'estado aleatório". Esta mensagem se refere ao arquivo semeadura padrão (ver resposta anterior). Uma possível razão é que nenhum nome de arquivo padrão é conhecido porque nem RANDFILE nem casa é definido. (versões até 0.9.6 arquivo usado ".rnd" no diretório atual, neste caso, mas isso mudou com 0.9.6a).

Então, eu iria verificar RANDFILE, em casa, e permissões para escrever a esses lugares no sistema de arquivos.

Se tudo parece estar em ordem, você pode tentar correr com strace e ver o que exatamente está em curso.

Outras dicas

Eu sei que esta questão está no Linux, mas no Windows eu tive o mesmo problema. Acontece que você tem que iniciar o prompt de comando no modo "Executar como administrador" para que ele funcione. Caso contrário, você obter o mesmo:. Incapaz de escrever erro 'aleatória estado'

Um outro problema na plataforma Windows, verifique se você está executando o seu prompt de comando como um usuário administrativo!

Eu não sei quantas vezes isso tem me mordido ...

Aparentemente, eu precisava para executar OpenSSL como root para que ele tenha permissão para o arquivo a semeadura.

Eu tive a mesma coisa no servidor windows. Então eu descobri, alterando o vars.bat que é:

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

, em seguida, refazer do começo e tudo deve estar bem.

O problema para mim foi que eu tinha .rnd no meu diretório home mas foi detida pela raiz. Excluí-lo e reemitir o comando openssl fixo isso.

Você deve definir a variável de ambiente RANDFILE $ e / ou criar $ file HOME / .rnd. ( OpenSSL FAQ ). (Claro, você deve ter direitos para esse arquivo. Outras respostas aqui são sobre isso. Mas primeiro você deve ter o arquivo e uma referência a ele.)

Até a versão 0.9.6 OpenSSL escreveu o arquivo de semeadura no diretório atual no arquivo ".rnd". Na versão 0.9.6a você não tem nenhum arquivo de semeadura padrão. 0.9.6b OpenSSL e mais tarde irá se comportar de forma semelhante a 0.9.6a, mas vai usar um padrão de "C: \" para PRINCIPAL em sistemas Windows, se a variável de ambiente não foi definido.

Se o arquivo de semeadura padrão não existe ou é muito curto, pode ocorrer a mensagem de erro "PRNG não semeado".

A variável de ambiente $ RANDFILE e $ HOME / .rnd são apenas utilizadas pelas ferramentas de linha de comando OpenSSL. Aplicações usando a biblioteca OpenSSL fornecer suas próprias opções de configuração para especificar a fonte de entropia, confira a documentação que vem o com o aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top