Se você possui um arquivo .pfx (também conhecido como PKCS#12) e precisa extrair a chave privada (private key) e o certificado (crt), este tutorial vai guiá-lo passo a passo usando o OpenSSL.
Vamos usar um arquivo fictício chamado meucertificado.pfx como exemplo.
📌 Pré-requisitos
- OpenSSL instalado (disponível no Linux, macOS e Windows via WSL ou pacotes como Git Bash).
- O arquivo .pfx (no nosso caso,
meucertificado.pfx). - Senha do arquivo (se aplicável).
🔑 Passo 1: Extrair a Chave Privada (private key)
Execute o seguinte comando para extrair a chave privada em formato PEM:
openssl pkcs12 -in meucertificado.pfx -nocerts -out privatekey.pem -nodes
Explicação dos parâmetros:
-in meucertificado.pfx: Arquivo de entrada.-nocerts: Extrai apenas a chave privada, ignorando certificados.-out privatekey.pem: Salva a chave privada em um arquivo.pem.-nodes: Não criptografa a chave privada (sem senha).
🔹 Se o .pfx estiver protegido por senha, o OpenSSL solicitará que você a digite.
📜 Passo 2: Extrair o Certificado (crt)
Agora, vamos extrair o certificado em formato .crt:
openssl pkcs12 -in meucertificado.pfx -clcerts -nokeys -out certificate.crt
Explicação dos parâmetros:
-clcerts: Extrai apenas o certificado principal (ignora certificados intermediários).-nokeys: Não inclui chaves privadas no arquivo de saída.-out certificate.crt: Salva o certificado em formato.crt.
🛠️ (Opcional) Converter a Chave Privada para .key
Se preferir a chave privada em formato .key (sem cabeçalhos PEM), execute:
openssl rsa -in privatekey.pem -out private.key
🔍 Verificando os Arquivos Gerados
Após executar os comandos, você terá:
privatekey.pemouprivate.key→ Chave privada.certificate.crt→ Certificado público.
Para visualizar o conteúdo do certificado, use:
openssl x509 -in certificate.crt -text -noout
⚠️ Dicas de Segurança
- Mantenha a chave privada em local seguro (permissões restritas:
chmod 400 private.key). - Não compartilhe a chave privada publicamente.
- Se o
.pfxcontiver certificados intermediários (CA), extraia-os com:
openssl pkcs12 -in meucertificado.pfx -cacerts -nokeys -out ca-bundle.crt
🎯 Conclusão
Agora você sabe como extrair a chave privada e o certificado de um arquivo .pfx usando OpenSSL. Esses arquivos são essenciais para configurar SSL em servidores web (Apache, Nginx, IIS).
