OpenSSL – Como converter Certificados SSL para vários formatos – PEM CRT CER PFX P12 & mais

Neste post, parte da nossa série “como gerir certificados SSL em sistemas Windows e Linux”, mostraremos como converter um certificado SSL nos formatos mais comuns definidos nas normas X.509: o formato PEM e o formato PKCS#12, também conhecido como PFX. O processo de conversão será realizado através da utilização do OpenSSL, uma ferramenta gratuita disponível para plataformas Linux e Windows.

p>Antes de entrar nos comandos de consola do OpenSSL, recomendamos que dê uma vista de olhos à nossa visão geral do X.509 formatos de ficheiros de certificados SSL padrão e mais populares – CER, CRT, PEM, DER, P7B, PFX, P12 e assim por diante.

Installing OpenSSL

A primeira coisa a fazer é certificar-se de que o seu sistema tem o OpenSSL instalado: esta é uma ferramenta que fornece uma implementação de código aberto dos protocolos SSL e TLS e que pode ser usada para converter os ficheiros de certificados no mais popular X.509 formatos baseados na v3.

OpenSSL em Linux

Se estiver a usar Linux, pode instalar o OpenSSL com o seguinte comando de consola YUM:

Shell

se a sua distribuição for baseada em APT em vez de YUM, pode, em vez disso, usar o seguinte comando:

1
>div>

> yum install openssl
1
> apt-obter instalar openssl

OpenSSL no Windows

Se estiver a usar Windows, pode instalar uma das muitas implementações OpenSSL open-source: a que podemos recomendar é Win32 OpenSSL by Shining Light Production, disponível em versão leve ou completa, ambas compiladas nos modos x86 (32-bit) e x64 (64-bit) . Pode instalar qualquer uma destas versões, desde que o seu sistema as suporte.

IMPORTANTE: OpenSSL for Windows requer o Visual C++ 2008 Redistributables runtime a fim de funcionar.

OpenSSL é basicamente uma aplicação de consola, o que significa que a utilizaremos a partir da linha de comandos: após a conclusão do processo de instalação, é importante verificar se a pasta de instalação (C:\Program Files\OpenSSL-Win64\bin para a versão de 64 bits) foi adicionada ao sistema PATH (Painel de Controlo > System> Advanced > Environment Variables): se não for o caso, recomendamos vivamente que a adicione manualmente, para que possa evitar digitar o caminho completo do executável sempre que precisar de lançar a ferramenta.

Once OpenSSL será instalado, poderemos utilizá-lo para converter os nossos certificados SSL em vários formatos.

From PEM (pem, cer, crt) to PKCS#12 (p12, pfx)

Este é o comando de consola que podemos utilizar para converter um ficheiro de certificado PEM (.pem, .cer ou extensões .crt), juntamente com a sua chave privada (.extensão de chave), num único ficheiro PKCS#12 (.p12 e .pfx extensões):

Shell

1
> openssl pkcs12 -exportação – em certificado.crt -inkey privatekey.key -out certificado.pfx

Se também tiver um ficheiro de certificados intermédios (por exemplo, CAcert.crt) , pode adicioná-lo ao “pacote” utilizando o parâmetro de comando -certfile da seguinte forma:

Shell

1
> openssl pkcs12 -exportação – em certificado.crt -inkey privatekey.key -out certificate.pfx -certfile CAcert.cr

From PKCS#12 to PEM

If you need to “extract” a PEM certificate (.pem, .cer or .crt) and/or its private key (.chave)de um único ficheiro PKCS#12 (.p12 ou .pfx), é necessário emitir dois comandos.

O primeiro é para extrair o certificado:

Shell

1
> openssl pkcs12 -em certificado.pfx -nokey -out certificado.crt

E um segundo seria recuperar a chave privada:

Shell

1
> openssl pkcs12 -em certificado.pfx -out privatekey.key

IMPORTANTE: a chave privada obtida com o comando acima será em formato encriptado: para a converter em formato RSA, será necessário introduzir um terceiro comando:

Shell

1
> openssl rsa -em chave privada.key -out privatekey_rsa.key

Needless to say, since PKCS#12 is a password-protected format, in order to execute all the above commands you will be prompted for the password that has been used when creating the .pfx file.

From DER (.der, cer) to PEM

Shell

1
> openssl x509 -informar der -in certificado.cer -out certificado.pem

From PEM to DER

Shell

1
> openssl x509 -outform der -in certificado.pem -out certificate.der

From PEM to PKCS#7 (.p7b, .p7c)

Shell

1
> openssl crl2pkcs7 -nocrl -certfile certificado.pem -out certificate.p7b -certfile CAcert.cer

From PKCS#7 to PEM

Shell

1
> openssl pkcs7 -print_certs -in certificado.p7b – sem certificado.pem

From PKCS#7 to PFX

Shell

>>div>

> openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
> openssl pkcs12 -exportar -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer

1
2

Conversores SSL em linha

Se não pode (ou não quer) instalar o OpenSSL, pode converter os seus Certificados SSL usando uma destas ferramentas em linha baseadas na web:

  • Ferramenta Conversor de Certificados SSL por SSLShopper.com
  • Conversor SSL por NameCheap

ambos funcionam muito bem e podem converter a maioria, se não todos, o formato detalhado acima: ao mesmo tempo, precisa de pensar seriamente nas implicações de segurança que advêm do carregamento dos seus Certificados SSL (e possivelmente das suas chaves privadas) para um serviço de terceiros. Como estes dois sites têm sido confiáveis e seguros a partir de hoje, ainda não recomendamos tal mudança.

Conclusions

É isso, pelo menos por enquanto: esperamos que estes comandos sejam úteis aos programadores e administradores de sistemas que precisam de converter certificados SSL nos vários formatos requeridos pelas suas aplicações.

Vejo-o da próxima vez!