OpenSSL Converter PEM para PFX usando a chave RSA PRIVATE

1

Estou tentando usar o OpenSSL para converter um arquivo PEM e uma chave privada RSA em um arquivo PFX. Aqui está o comando de exemplo que tentei usar:

openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem

Ao fazer isso, recebo a seguinte mensagem de erro:

unable to load private key
9068:error:0906D06C:PEM routines:PEM_read_bio:no start 
line:pem_lib.c:696:Expecting: ANY PRIVATE KEY

O arquivo cert é assim:

-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----

e a chave privada são assim:

-----BEGIN RSA PRIVATE KEY-----
....
-----END RSA PRIVATE KEY-----

Eu investiguei o erro, mas ainda não encontrei uma solução.

EDITAR

Após algumas pesquisas adicionais, parece ser um problema com diferentes versões do openssl.

Se eu executar no meu sistema OSX que está executando 0.9.8zh 14 de janeiro de 2016, estas instruções funcionam bem.

No entanto, se eu executá-lo em uma máquina Windows com a versão OpenSSL 1.0.1p 9 de julho de 2015 e OpenSSL 1.1.0g 2 de novembro de 2017, obtenho os erros acima.

    
por thxmike 23.02.2018 / 19:29

1 resposta

0

Depois de algumas descobertas, descobri que foram os scripts do Powershell que geraram os arquivos chave e cert.

Usando o Notepad ++ no Windows e o Tex-Edit Plus no OSX para identificar caracteres ocultos, descobri que os arquivos tinham [cr] extras no final.

Usando o comando

openssl rsa -in <private key file> -noout -text
openssl x509 -in <cert file> -noout -text

São boas verificações para a validade dos arquivos

Como minha origem era codificada em base64, acabei usando o comando certutil no Windows (por exemplo)

certutil -f -decode cert.enc cert.pem
certutil -f -decode key.enc cert.key

no windows para gerar os arquivos. Uma vez que os arquivos estavam corretos, o comando OpenSSL acima funcionou como esperado.

    
por 07.03.2018 / 17:03

Tags