web-dev-qa-db-fra.com

Création d'un fichier .p12

En utilisant openssl, j'ai créé une clé privée comme suit:

openssl genrsa -out myKey.pem

Ensuite, pour générer le csr demandé par l'autorité de certification, j'ai exécuté ce qui suit:

openssl req -new -key myKey.pem -out cert.csr

L'AC a répondu avec un certificat que j'ai stocké dans un fichier nommé myCert.cer

J'aimerais maintenant regrouper les composants nécessaires (clé privée, clé publique (?) Et certificat) en un seul .p12. Pour ce faire, j'ai exécuté ce qui suit:

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in myCert.cer

mais je reçois le message d'erreur suivant:

No certificate matches private key

Comment puis-je accomplir cela?

40
Isaac Kleinman

openssldocumentation indique que le fichier fourni en tant que -in l'argument doit être au format [~ # ~] pem [~ # ~] .

Il s'avère que, contrairement au manuel de l'autorité de certification, le certificat renvoyé par l'autorité de certification que j'ai stocké dans myCert.cer n'est pas [~ # ~] pem [~ # ~] mais plutôt PKCS7 .

Afin de créer mon .p12, Je devais d’abord convertir le certificat en [~ # ~] pem [~ # ~] :

openssl pkcs7 -in myCert.cer -print_certs -out certs.pem

et ensuite exécuter

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in certs.pem
46
Isaac Kleinman