O "último" na minha descrição, privatekey e cadeia cert, é PKCS # 12 como você pediu originalmente. (O PKCS # 7 lida apenas com o caso da cadeia cert.) Para criar o PKCS # 12 mais simples, use a operação de linha de comando pkcs12
com a opção -export
. Existem várias maneiras de combinar as opções desse comando, mas duas maneiras simples para um cenário de três níveis como o seu (root, mid, leaf) são:
openssl pkcs12 -export -in leafcert.pem -inkey leafkey.pem -certfile midcert.pem -CAfile rootcert.pem -chain -out my.p12
cat leafcert.pem leafkey.pem midcert.pem rootcert.pem | openssl pkcs12 -export -out my.p12
(substitua seus nomes de arquivos). Detalhes completos na manpage, disponíveis em qualquer sistema Unix em que o OpenSSL esteja (totalmente) instalado ou on-line no link (ou escolha uma versão anterior do link , se necessário).
Para completar, se você precisa da cadeia sem a chave privada, é
openssl crl2pkcs7 -nocrl -certfile leafcert.pem -certfile midcert.pem -certfile rootcert.pem -out my.p7b