Comment puis-je convertir un pem de la clé privée d'un format pour windows qui peut être utilisé dans .NET

J'ai reçu une clé privée qui s'est avéré être dans pkcs8 format, j'ai réussi à le transformer en un fichier pem à l'aide de la commande suivante:

openssl pkcs8 -inform der -nocrypt -in private.key -out pkey.pem

J'ai maintenant besoin de convertir cette pkcs12 donc je peux l'utiliser .NET pour créer un certificat X509 (aussi j'aimerais l'importer dans windows cert manager).

J'ai essayé cette commande:

openssl pkcs12 -export -name myalias -in mycert.crt -inkey pkey.pem -out keystore.p12

cependant, je n'ai pas la clé publique, j'ai essayé d'utiliser le pkey.fichier pem comme l'-arg, mais il me dit No certificate matches private key. Si j'essaie sans le -in arg puis rien ne se passe (et je dis bien rien, il y a une ligne vide jusqu'à ce que j'appuie sur ctrl-c).

Comment puis-je générer la clé publique à partir de la clé privée, ou de les convertir à pkcs12 sans la clé publique?

La première partie de cette question, a été à partir de la réponse ici

Je trouvé une réponse qui m'a donné un peu d'espoir, qui dit à l'exécution de cette commande (-nocerts):

openssl pkcs12 -export -nocerts -inkey your.private.key.pem -out your.private.key.p12

Mais lorsque j'essaie d'importer le fichier dans la clé de windows store, il est dit The specified file is empty quand c'est de l'importation.

J'ai aussi réussi à générer une demande de signature de certificat à partir des instructions ici, qui a généré un fichier de certificat, mais la commande n'a toujours pas accepter que le fait de dire No certificate matches private key

Une autre réponse suggère la génération de la clé publique, ce que je fais, mais quand je l'utiliser comme -in arg-il encore dit No certificate matches private key, dont je ne comprends pas que cette clé publique a été généré à partir de la clé privée à l'aide de cette commande: openssl rsa -in privkey.pem -pubout > key.pub

EDIT:
J'ai posté une réponse, mais comme je le disais, je n'ai aucun moyen de vérifier cette information ou de dire si cela fonctionne. Si quelqu'un a plus d'informations, s'il vous plaît laissez-moi savoir.

OriginalL'auteur Mr Shoubs | 2013-10-31