Primeiramente utilizamos o comando abaixo para extrair somente a “key” do arquivo .pfx
openssl pkcs12 -in [yourfile.pfx] -nocerts -out [drlive.key]
Após executado o comando será pedido o password utilizado para gerar o arquivo .pfx, será necessário repetir três vezes.
Depois que extraímos a “key” e deixamos em um arquivo, vamos agora extrair o cert do arquivo .pfx, usando esse comando:
openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]
Após a execução será pedido novamente o password utilizado na geração do arquivo .pfx
Agora com o arquivo .key e o .crt em mãos vamos fazer a decriptação do arquivo .key, com o seguinte comando:
openssl rsa -in [drlive.key] -out [drlive-decrypted.key]
Assim como os passos anteriores e solicitado o password
Com isso temos: arquivo.key , arquivo.crt e o arquivo-decrypted.key.
Com todas as peça em mãos vamos agora gerar um arquivo .pfx
Primeiramente vamos concatenar nossos arquivo .crt em um só, pois a criação do .pfx só aceita apenas um arquivo .crt, utilizaremos este comando:
cat <hostname_certificate>.crt <arquivo CA>.crt <arquivo USER>.crt <arquivo AAA>.crt >> arquivo-full.crt
Após concatenarmos todos arquivo em um só vamos a criação do arquivo.pfx
Para gerarmos esse arquivo vamos usar o comando openssl abaixo:
openssl pkcs12 -export -out <name_do_arquivo>.pfx -inkey <arquivo-decrypted>.key -in <arquivo-full>.crt
Após a execução do comando será pedido um password e depois pedirá para verificar o password terá que repetir o mesmo password.
Referencia: https://www.ibm.com/docs/en/arl/9.7?topic=certification-extracting-certificate-keys-from-pfx-file.