web-dev-qa-db-fra.com

Comment importer un fichier de clé OpenSSL dans le magasin de certificats Windows

J'ai un certificat X.509 généré par OpenSSL au format PEM et c'est un fichier clé associé. Ce certificat est requis pour l'authentification lors de la connexion à un serveur prototype. Cela fonctionne bien sur Linux. J'utilise l'API Microsoft Schannel pour piloter des connexions SSL/TLS sur des plates-formes Windows, mais je souhaite utiliser le même certificat de test. Je peux cliquer avec le bouton droit de la souris sur le fichier de certificat et l'importer dans mon magasin de certificats, mais je pense que la clé privée n'est pas importée avec elle (même si je les ai concaténées dans le même dossier).

Lorsque je vais à exécuter le code Schannel, j'obtiens une erreur "SEC_E_NO_CREDENTIALES" lorsque j'y introche le contexte de sécurité (via InitialiseSecurityContext). Je suppose que cela signifie que la clé privée est manquante.

Est-ce que quelqu'un sait comment tester la présence ou l'absence d'une clé privée dans un certificat situé dans le magasin de certificats personnel (ou "My '), accessible via' certmgr.msc '?. Est-il possible d'importer un nouveau fichier de clé pour un certificat dans le magasin?

Toute perspicacité ou conseil serait très appréciée.

10
Gearoid Murphy

Pour tester si la clé privée est installée pour le certificat, double-cliquez sur l'icône de certificat dans certmgr.msc. S'il a une clé privée, il affichera un message dans la page de propriétés que vous avez une clé privée, sinon cela ne donnera aucune référence à la clé privée.

Certificate with a private key


Pour importer le certificat avec sa clé privée, vous pouvez procéder comme suit:

  1. Pack Le certificat et sa clé privée dans un fichier PKCS # 12 ou un fichier PFX à l'aide de OpenSSL PKCS12. Voici un exemple .
  2. Importer ce fichier PKCS n ° 12 ou PFX dans le magasin de certificats.

Notez que vous pouvez voir des erreurs lors de l'importation du fichier PFX, telle que "Ce fichier est invalide pour une utilisation comme suit: Exchange d'informations personnelles". Cette erreur a été causée par le certificat qui manque d'extensions de X.509 V3 appropriées (telles que les champs d'utilisation (signature numérique, etc.))

10
doptimusprime