Estou trabalhando com Apache2 e Passenger para um projeto Rails. Gostaria de criar um certificado SSL autoassinado para fins de teste.
sudo openssl rsa -des3 -in server.key -out server.key.new
Quando eu digito o comando acima, ele diz
writing RSA key
Enter PEM pass phrase:
Se eu não inserir a senha, estou recebendo o erro abaixo
unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382
É possível gerar uma chave RSA sem fornecer pass phrase
, pois não tenho certeza de como o /etc/init.d/httpd
script iniciará o servidor HTTP sem intervenção humana (ou seja, se eu fornecer uma senha de 4 caracteres, ele espera que eu forneça isso ao iniciar o servidor HTTP Apache ).
Se você estiver gerando um certificado autoassinado, poderá fazer a chave e o certificado em um comando assim:
Ah, e o que @MadHatter disse em sua resposta sobre omitir a
-des3
bandeira.Deixe de fora o
-des3
sinalizador, que é uma instrução para openssl criptografar server.key.new (que, aliás, não é uma nova chave - é exatamente o mesmo que server.key, apenas com a senha alterada / removida) .O
openssl req
comando da resposta de @Tom H está correto para criar um certificado autoassinado emserver.cert
incl. uma chave privada RSA sem senha emserver.key
:Aqui está como funciona. Omitir
-des3
como na resposta de @MadHatter não é suficiente neste caso para criar uma chave privada sem senha. Basta para isso no comando (openssl rsa
"converter uma chave privada") referido por @MadHatter e no comandoopenssl genrsa
("criar uma chave privada"). Apenas não para oopenssl req
comando aqui. Além disso, precisamos de-nodes
("Sem criptografia DES, porserver.key
favor!").Use o
-nodes
parâmetro, se esta opção for especificada, a chave privada não será criptografada, por exemplo:Basta executá-lo novamente através do openssl
primeiro gere a chave com a senha
então
openssl rsa -in server.key -out server.key
Adicionar '-nodes' ao 'openssl req' permite que uma chave privada não criptografada (sem frase secreta) seja gerada a partir do comando 'openssl req'
Use o próximo comando para gerar o arquivo de chave privada sem senha sem criptografia . O último parâmetro é o tamanho da chave privada.
Para gerar o certificado PEM sem senha:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 10000 -nodes
Para gerar um certificado autoassinado para teste:
Em seguida, remova a senha da chave via
Esta resposta é de: https://actix.rs/docs/server/ . Esta resposta conclui https://serverfault.com/a/662445/113360 acima com uma etapa anterior.