web-dev-qa-db-fra.com

comment importer une clé privée dans windows

Disons que j'ai un cert X.509 et une clé privée qui lui correspond. Je peux importer des certificats X.509 assez facilement dans Windows, mais qu'en est-il des clés privées?

Est-ce la seule façon de le faire en convertissant à la fois le certificat et la clé privée en un fichier "Personal Information Exchange (PKCS # 12)" et en l'important?

Peut-être que cette question serait meilleure sur superuser.com? Quoi qu'il en soit, merci!

36
neubert

La réponse à votre question est Oui. Vous devez convertir le X.509 en PFX et l'importer. Il n'y a pas de magasin de clés distinct dans Windows.

Vous pouvez convertir votre certificat à l'aide d'OpenSSL avec la commande suivante:

openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.crt -certfile CACert.crt
39
k1DBLITZ

Sous Windows, vous pouvez avoir des clés privées "par elles-mêmes". Par programme, vous utilisez CryptAquireContext() pour accéder à une clé "par nom". Le CryptoAPI contient de nombreuses fonctions qui vous permettent d'importer et d'utiliser des clés, indépendamment des certificats.

Cependant, il n'existe aucune interface graphique ni format de fichier pour gérer les clés privées et les applications n'utilisent pas les clés par leur nom. Ils utilisent des certificats . Les certificats, dans Windows, sont stockés "ailleurs", mais chaque certificat dans la boutique "My" peut éventuellement contenir un lien vers une clé privée correspondante (le lien serait en réalité un nom CSP et le nom d'un conteneur dans ce CSP). Cela correspond à ce qui est attendu dans divers protocoles. Par exemple, en SSL, lorsque le serveur demande une authentification client avec une clé privée, il demande en fait un certificat: le client doit présenter un certificat, puis, seulement alors, démontrer qu'il a également accès à la clé privée correspondante.

Ainsi, dans la pratique, les certificats et les clés "cohabitent" et les clés ne sont atteintes que par des certificats. Un certificat et sa clé privée voyagent ensemble, ce qui signifie un fichier PKCS # 12 (alias "PFX").

6
Thomas Pornin

Un PKCS12 (* .p12 ou * .pfx) est absolument le moyen le plus simple. Il existe de nombreux outils courants pour combiner une paire de clés et un certificat dans un p12. Mon préféré est OpenSSL, car il fonctionne sur tous les systèmes d'exploitation sur lesquels j'ai jamais eu besoin de l'utiliser et il est raisonnablement conforme aux normes. Ici est une collection variée de pages sur la façon dont, bien que le kilométrage varie en fonction de la façon dont votre paire de clés et votre certificat sont actuellement stockés.

De plus - la plupart des appareils avec une capacité d'exportation offriront une option de génération PKCS12 si les paramètres permettent l'exportation de clés - c'est plus ou moins la norme pour la plupart des applications compatibles PKI, et les quelques cas où ce n'est pas la norme (Java par exemple), est toujours généralement une capacité de conversion ou d'exportation.

Une remarque - si vous avez un cas où votre clé se trouve sur un jeton matériel ou un module, vous pouvez toujours le référencer à partir du Microsoft Cert Store - il vous suffit d'importer le certificat et d'indiquer à Microsoft où la clé est stockée ... Pour ce faire, vous devez suivre les instructions de l'appareil pour mettre à jour le magasin de certificats.

0
bethlakshmi