Para transformar um certificado .pfx em um formato que o Apache2 possa interpretar (geralmente um certificado .crt e uma chave privada .key), siga os passos abaixo:
1. Extrair a chave privada (.key)
Execute o seguinte comando OpenSSL para extrair a chave privada do arquivo .pfx:
openssl pkcs12 -in certificado.pfx -nocerts -out chave_privada.key -nodes
certificado.pfx? Substitua pelo nome do seu arquivo.pfx.chave_privada.key? Será o arquivo de saída contendo a chave privada.-nodes? Mantém a chave sem criptografia (opcional, mas útil para evitar digitar senha ao reiniciar o Apache).
? Se o .pfx tiver senha, você será solicitado a digitá-la.
2. Extrair o certificado público (.crt)
Agora, extraia o certificado público:
openssl pkcs12 -in certificado.pfx -clcerts -nokeys -out certificado.crt
certificado.crt? Será o arquivo de saída contendo o certificado público.
3. (Opcional) Remover a senha da chave privada (se aplicável))
Se você usou -nodes no passo 1, ignore esta etapa. Caso contrário, remova a senha da chave privada com:
openssl rsa -in chave_privada.key -out chave_sem_senha.key
4. Configurar o Apache2
Agora, mova os arquivos gerados para um diretório seguro (ex.: /etc/ssl/private/) e configure o Apache.
Exemplo de configuração no Virtual Host (SSL):
<VirtualHost *:443>
ServerName seu-dominio.com.br
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificado.crt
SSLCertificateKeyFile /etc/ssl/private/chave_privada.key
# Se houver uma cadeia de certificados (intermediários)
# SSLCertificateChainFile /caminho/para/cadeia.crt
</VirtualHost>Certificado intermediário (se necessário)
Se o seu certificado requer uma cadeia de confiança (ex.: Let’s Encrypt, GoDaddy, DigiCert), você pode precisar baixar o certificado intermediário e concatená-lo ao seu .crt:
cat certificado.crt intermediario.crt > certificado_completo.crt
E no Apache:
SSLCertificateFile /etc/ssl/certs/certificado_completo.crt
5. Reinicie o Apache
sudo systemctl restart apache2
Verificações
- Teste a configuração do Apache
sudo apache2ctl configtest - Verifique se o SSL está funcionando:
openssl s_client -connect seu-dominio.com.br:443 -servername seu-dominio.com.br
Pronto! Seu Apache2 agora está usando o certificado convertido do .pfx.