Como fazer com que o Apache 2 pare de pedir uma senha para um certificado SSL?

2

Acabei de adicionar um certificado SSL ao Apache. O problema é que o Apache é executado na inicialização do sistema e depois que meu servidor é ligado, o Apache é executado, mas não é executado. Eu coloquei o endereço IP do meu computador e meu navegador continua tentando se conectar. Eu vejo um círculo giratório.

Então eu entro no meu servidor, mato todos os processos relacionados ao Apache, e executo sudo service apache2 restart . Por causa do sudo , sou solicitado pela minha senha de superusuário, mas depois que a coloco, o Apache solicita a senha do arquivo .key. Eu coloco e então o Apache funciona bem. O SSL funciona mesmo.

Então, por que o Apache não funciona até que eu reinicie? É porque quer que eu coloque a senha a cada inicialização? Se sim, como faço isso no meu servidor Xubuntu? Posso fazer isso para não ter que colocá-lo sempre?

    
por John Scott 20.07.2014 / 21:39

2 respostas

5

Parece que a chave privada do seu certificado SSL é protegida por senha. Para testar se esse é realmente o caso, examine o início do seu arquivo-chave usando o comando head -3 your.key . Esta chave privada é criptografada:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,C251E8A1254B933D763703EE1C364AB7

Este arquivo não está criptografado:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvbeWtO9nQP4cFFuhGrOM/WQ73oTQHU7mzZB9CaA3R2iwjDNz
wwlDtT9tfo0tCC2ib9STfeM6AYrdI3wauzCu7AV4CFGSMP3HLX8DJuk8zzbdQHHv

Para remover a senha de uma chave privada RSA, use o seguinte comando:

umask 077
mv your.key old-with-pass.key
openssl rsa -in old-with-pass.key -out your.key

O comando umask 077 é necessário para garantir que a nova chave não seja criada com permissões excessivamente relaxadas. Como alternativa, você pode alterar manualmente o modo do arquivo com chmod 400 new.key . Dependendo da localização da chave, talvez seja necessário prefixar os comandos openssl , mv e chmod com sudo .

    
por Lekensteyn 20.07.2014 / 21:47
5

Responda em link por @JamesSneeringer.

  

Eu fui culpado de remover a frase secreta dos meus próprios arquivos de chave em   o passado, porque é a solução mais simples, mas em termos de segurança, é   não é a melhor ideia. Uma alternativa é alimentar a frase secreta para o Apache.   Você pode fazer isso com a opção SSLPassPhraseDialog no seu    httpd.conf (ou outro arquivo que inclua).

     

Se você tiver apenas um site SSL em seu servidor, a forma mais simples de   isso seria:

# either of these will work
SSLPassPhraseDialog |/path/to/passphrase-script
SSLPassPhraseDialog exec:/path/to/passphrase-script
     

Você criaria um script muito simples chamado    /path/to/passphrase-script que contém algo como o   seguinte:

#!/bin/sh
echo "put the passphrase here"
     

Ao iniciar, o Apache pegará a saída deste script e usará   como a frase secreta da sua chave SSL. Se você tiver vários sites SSL,    SSLPassPhraseDialog tem formas adicionais de uso   usado, para que você possa ter um único script para todas as suas chaves ou   um script separado para cada um, ou como você quiser.

    
por Abdullah 01.12.2014 / 08:08