Neste post vou abordar como configurar o módulo MOD_SSL para que o Apache fique configurado com uma chave SSL .
1) Instalação dos Requisitos
yum install openssl mod_ssl
2) Geração do Certificado :
O Apache2 com SSL funciona através de um certificado reconhecido na web. Para gerar o certificado (CSR) é necessário a criação de uma chave e essa chave ficará no arquivo server.key. De dentro do diretório onde ela ficará armazenada.
openssl genrsa -des3 -out server.key 1024
Com a chave criada é importante acrescentar informações. Após digitar o comando abaixo, ele pedirá a chave e para preencher alguns dados, são os dados que serão visualizados referentes ao criador do certificado:
openssl req -new -key server.key -out server.csr
Criação do Certificado
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
OBS: Envie a requisição do certificado (arquivo *.csr) para a entidade autenticadora (cartório digital).
Existem diversos cartórios digitais, os mais conhecidos são: Certisign e Verisign.
Após aquisição do certificado junto ao cartório digital, você recebera o certificado digital válido.
3) Configuração do Apache :
Configuração do HTTPD.conf :
Adicione a entrada abaixo em /etc/httpd/conf/httpd.conf :
SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key
4) Cópia da chave e restart do serviço :
cp -Rv server.crt /etc/pki/tls/certs/server.crt cp -RV server.key /etc/pki/tls/private/server.key service httpd restart
5) Alternativas de como não solicitar o Passphrase:
Removendo a senha :
Com OpenSSL você pode realmente remover a senha da chave SSL completamente. Isso irá evitar Apache pedindo para você digitar a senha toda vez que é iniciado.
openssl rsa -in server.key -out server.key.insecure mv server.key server.key.bkp mv server.key.insecure server.key service httpd restart
Usando script :
Podemos definir a configuração abaixo no httpd.conf e fazer que a senha seja digita por script:
No meu exemplo “/root/key.sh” é meu script
SSLPassPhraseDialog exec:/root/key.sh
Código do script key.sh
Onde está fajlinux seria a senha que foi utilizada para gerar a chave, é necessário da permissão de execução para que funcione (chmod +x script)
#!/bin/bash echo "fajlinux";
Referências:
https://wiki.apache.org/httpd/RemoveSSLCertPassPhrase
http://httpd.apache.org/docs/current/mod/mod_ssl.html