Os certificados X.509 são sempre no formato DER, mas geralmente são armazenados de duas maneiras:
- DER binário bruto (extensões usuais: .der, .cer)
- DER textual, codificado em Base64, às vezes chamado de "PEM" (extensões usuais: .crt, .pem)
Observe que as extensões não são realmente definidas em pedra - .cer pode ser textual, .crt pode ser binário e assim por diante. Você tem que realmente olhar para dentro.
(Não há encriptação envolvida; o certificado é informação pública.)
Para converter um certificado de formato binário para textual, você pode usar:
openssl x509 -in mycert.der -inform DER -out mycert.pem
# both -inform and -outform default to "PEM" if not specified otherwise
Ou porque é apenas o Base64,
(echo "-----BEGIN CERTIFICATE-----";
base64 < mycert.der;
echo "-----END CERTIFICATE-----") > mycert.pem
No entanto, seja qual for a maneira que você usa, não se esqueça de adicionar a cadeia de certificados (os certificados "intermediários" ou "intermediários" obtidos de sua CA) ao mesmo arquivo PEM. A maioria dos softwares espera tudo em um único arquivo, embora o Apache use uma opção SSLCertificateChainFile separada na v2.2.x.