Como Extrair a Chave Privada e o Certificado de um Arquivo .pfx

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.pem ou private.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 .pfx contiver 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).

Voltar ao Blog