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
Vous devez vous connecter pour publier un commentaire.
Ce qu'il semble:
Les commandes suivantes dans un format utilisable dans windows:
Convertir la clé privée à partir de pkcs8/DER à un fichier PEM format
Convertir le certificat x509/DER à un fichier PEM format
Fusionner les deux fichiers dans un fichier pkcs12 – vous serez invité à entrer le mot de passe pour protéger le p12 avec
Cela me donne un certificat pkcs12 (je pense) que j'ai ajouté à la touche windows store et peut alors accéder à partir de .NET et de l'attacher à mon WCF demande.
Malheureusement je ne peux pas vérifier que cela fonctionne de la réponse du service avec les mêmes données qu'à ma demande, qui est complètement déroutant:
Demande:
Réponse:
J'ai reçu la clé privée et x509 cert par un tiers, donc je suis en supposant que j'ai besoin d'utiliser la clé privée pour signer et/ou chiffrer ma demande et de l'utilisation de la clé publique de lire la réponse de leur service web. J'ai une question concernant les liaisons: stackoverflow.com/q/19427768/198048. Dans le tri, aucune idée. Apparemment, je suppose, mais maintenant, j'ai quelque chose d'utilisable .Net, je suis en avance d'une étape de là où j'étais avant.
Normalement, les communications chiffrées entre un client et un serveur web sont par SSL/TLS. L'URL commence par "https://". Si c'est le mécanisme que vous êtes supposé utiliser, et vous a donné une clé privée, ils peuvent exiger "2-way" ou "mutuelle" SSL, ce qui signifie que le client doit s'authentifier auprès du serveur. Ceci est fait grâce à une clé privée et du certificat correspondant. Si le serveur fait confiance à l'autorité de certification qui a signé le certificat du client, il peut être authentifiés et autorisés. Si le client fait confiance à l'autorité de certification qui a signé le certificat de serveur, il sera tout à la sécurité de la connexion.
Est-ce que votre certificat de correspondre à votre clé privée? I. e. est la clé publique dans le certificat de la paire de clé privée?
Il ne semble pas être lorsque j'ai utilisé la commande openssl pkcs12, c'jours, il ne correspond pas (je suppose qu'il ne l'est pas, mais je ne peux pas dire). Ce n'est pas une url https, juste http. Peut-être que j'ai juste besoin de signer, de ne pas le chiffrer.
OriginalL'auteur Mr Shoubs