openssl tenta escrever o 'estado aleatório' em um arquivo, mas as permissões do diretório que ele está usando não permitem criar o arquivo. Veja:
Estou tentando criar um certificado SSL auto-assinado usando o OpenSSL (a versão que vem com o Apache 2.2 + mod_ssl). Os binários do OpenSSL estão em C:\Web\Apache2.2\bin
e o arquivo de configuração que estou usando é C:\Web\Apache2.2\conf\openssl.cnf
. Eu executei os seguintes comandos:
(vou usar novas linhas para torná-lo mais legível).
openssl req -config ..\conf\openssl.cnf -new -out ..\conf\eduardo.csr
-keyout ..\conf\eduardo.pem
# Then I entered country code, province, city, etc.
# This step worked correctly.
openssl rsa -in ..\conf\eduardo.pem -out ..\conf\eduardo.key
# Then I entered my pass phrase.
openssl x509 -in ..\conf\eduardo.csr -out ..\conf\eduardo.cert
-req -signkey ..\conf\eduardo.key -days 1000000
E, ao executar o último passo, recebi a seguinte saída:
Loading 'screen' into random state - done
Signature ok
subject=/C=PE/ST=Lima/L=Lima/...
Getting Private Key
unable to write 'random state' <--
O que esse erro significa e como posso corrigi-lo?
openssl tenta escrever o 'estado aleatório' em um arquivo, mas as permissões do diretório que ele está usando não permitem criar o arquivo. Veja:
Faça o seguinte,
defina RANDFILE="D: \ path_to_certs \ .rnd" Aqui, se você definir o caminho RANDFILE sem mencionar .rnd, ele receberá a mensagem "Não foi possível gravar o estado aleatório" e openssl não criou o estado aleatório .rnd em um arquivo.
C: \ OpenSSL-Win32 \ bin \ openssl.exe
Funcionou para mim.
Para mim, em um servidor Windows, a solução para isso era simplesmente garantir que o prompt de comando fosse aberto por meio de "Executar como administrador"