Usando as instruções deste site, mas variando-as um pouco, criei uma CA usando -newca, copiei cacert.pem
para o meu comp e importei como emissor confiável no IE. Eu então fiz -newreq e -sign (nota: eu faço /full/path/CA.sh -cmd
e não sh CA.sh -cmd
) e movi o certificado e a chave para o apache.
Visitei o site no IE e usando o código .NET e parece confiável, ótimo (a menos que eu escreva www. na frente, o que é esperado). Mas toda vez que reinicio o apache, preciso digitar minha senha para o(s) site(s?).
Como posso fazer isso para que eu NÃO precise digitar a senha?
Você deseja remover a senha de um arquivo de chave. Rode isto:
Esteja ciente de que isso significa que qualquer pessoa com acesso físico ao servidor pode copiar (e, portanto, abusar) da chave.
Eu fui culpado de remover a senha de meus próprios arquivos de chave no passado, porque é a solução mais simples, mas em termos de segurança, não é a melhor ideia. Uma alternativa é alimentar a senha para o Apache. Você pode fazer isso com a
SSLPassPhraseDialog
opção em seuhttpd.conf
(ou outro arquivo que inclua).Se você tiver apenas um site SSL em seu servidor, a forma mais simples disso seria:
Você então criaria um script muito simples chamado
/path/to/passphrase-script
que contém algo como o seguinte:Ao iniciar, o Apache pegará a saída deste script e a usará como a senha para sua chave SSL. Se você tiver vários sites SSL,
SSLPassPhraseDialog
há maneiras adicionais de usá-lo, portanto, você pode ter um único script para todas as suas chaves ou um script separado para cada um, ou como quiser.Para remover a senha de um arquivo PEM, você pode fazer o seguinte. Observe que ambos os comandos são necessários para a situação em que a chave privada e o certificado público estão no mesmo arquivo:
Isso criará um arquivo chamado "newcert.pem", que é um arquivo PEM sem senha. Conforme observado em outras respostas, você deve considerar se isso é ou não uma boa ideia do ponto de vista da segurança antes de fazê-lo.
Capturado daqui