J'essaie de créer une authentification par certificat client pour mon site Web asp.net.
Afin de créer des certificats de client, je dois d'abord créer une autorité de certification:
makecert.exe -r -n “CN = Mon CA personnel” -pe -sv MyPersonalCA.pvk -a sha1 -len 2048 -b 01/01/2013-f 01/01/2023 -cy autorité MyPersonalCA.cer
Ensuite, je dois l'importer dans IIS 7, mais comme il accepte le format .pfx, je le convertis d'abord.
pvk2pfx.exe -pvk MyPersonalCA.pvk -spc MyPersonalCA.cer -pfx MyPersonalCA.pfx
Après avoir importé MyPersonalCA.pfx, j'essaie d'ajouter la liaison de site https à mon site Web et de choisir le certificat SSL ci-dessus, mais le message d'erreur suivant s'affiche:
Aucune suggestion?
Ce doit être une sorte de bogue IIS, mais j'ai trouvé la solution.
1- Exportez MyPersonalCA.pfx à partir d’IIS.
2- Le convertir en .pem :
openssl pkcs12 -in MyPersonalCA.pfx -out MyPersonalCA.pem -nodes
3- Reconvertissez-le en .pfx :
openssl pkcs12 -export -in MyPersonalCA.pem -inkey MyPersonalCA.pem -out MyPersonalCA.pfx
4- Réimportez-le dansIIS.
J'ai rencontré le même problème, mais je l'ai corrigé différemment. Je crois que le compte que j'utilisais a changé depuis le moment où j'ai initialement tenté de configurer le certificat jusqu'à l'heure où je suis revenu terminer le travail, ce qui a créé le problème. Je ne sais pas quel est le problème, mais je suppose que cela a à voir avec une sorte de hachage de l'utilisateur actuel et qui est incohérent dans certains scénarios lorsque l'utilisateur est modifié ou recréé, etc.
Pour résoudre ce problème, j'ai extrait de IIS et du composant logiciel enfichable Certificats (pour l'utilisateur actuel et l'ordinateur local) toutes les références du certificat en question:
Ensuite, j'ai importé le fichier * .pfx dans le composant logiciel enfichable certs de la console MMC, en le plaçant dans le noeud Ordinateur local\Personnel:
À partir de ce moment, j'ai pu retourner à IIS et le trouver dans les certificats de serveur. Enfin, je suis allé sur mon site, édité les liaisons et sélectionné le bon certificat. Cela a fonctionné parce que l'utilisateur était cohérent tout au long du processus.
Au point mentionné dans une autre réponse, vous ne devriez pas avoir à marquer le tout comme étant exportable, car il s'agit d'un problème de sécurité majeur. En réalité, vous autorisez tous ceux qui peuvent accéder à la boîte avec un ensemble similaire d’autorisations à emporter votre certificat avec eux et à l’importer ailleurs. De toute évidence, ce n'est pas optimal.
Avertissement de sécurité: la case à cocher signifie en réalité que le certificat peut être lu par des utilisateurs qui ne devraient pas pouvoir le lire. Tels que l'utilisateur qui exécute le processus de travail IIS. En production, utilisez autre réponse à la place.
Cela m'est arrivé également et a été corrigé en s'assurant que "Autoriser l'exportation de ce certificat" est coché lors de son importation:
(merci à ce post !)
Personne ne s'en soucie probablement plus, mais je viens de faire face à ce problème avec la liaison de mon IIS 7. La façon dont j'ai corrigé le problème était transmise à l'autorité de certification et à la recherche du certificat délivré au serveur avec le problème. J'ai vérifié le compte d'utilisateur qui a demandé le certificat. Je me suis ensuite connecté au serveur IIS à l'aide de RDP avec ce compte. J'ai pu relier le protocole https en utilisant ce compte uniquement. Aucune exportation, réédition ou modification de hacks n’est nécessaire.
Dans notre cas, ce problème est dû au fait que nous avons installé le certificat sur une machine virtuelle et en avons créé une image pour une utilisation ultérieure.
Lorsque vous créez un autre VM à partir de l'image créée précédemment, le certificat envoie le message.
Pour éviter cela, veillez à installer le certificat sur chaque nouveau VM installé.
Nous avons eu le même problème en raison de l'importation incorrecte du certificat dans le magasin de certificats de l'utilisateur actuel. Le supprimer du magasin personnel de l'utilisateur actuel et l'importer dans le magasin de certificats de l'ordinateur local de l'ordinateur ont résolu le problème.
J'ai eu le même problème. Résolu en retirant le certificat du magasin personnel (quelqu'un y a mis) et de l'hébergement Web. Tout est fait via le gestionnaire IIS. Ensuite, j'ai ajouté de nouveau au magasin d'hébergement Web (avec tout vérifié) et je peux utiliser à nouveau HTTPS ...
J'ai eu cette erreur en raison d'une mauvaise ligne de commande openssl lors de l'exportation du certificat PKCS # 12. La clé -certfile était fausse. J'ai exporté à nouveau le certificat et celui-ci a été importé avec succès.
Dans mon cas, c'était parce que l'utilisateur du service de publication World Wide Publishing ne possédait pas les autorisations nécessaires pour le certificat. Après avoir installé le certificat, accédez au module de certificats dans MMC et cliquez avec le bouton droit sur le certificat avec le problème. Sélectionnez "Gérer les clés privées ..." dans le menu "Toutes les tâches" et ajoutez l'utilisateur ci-dessus. C'était un utilisateur système dans mon cas.
J'ai réussi à résoudre ce problème en important le fichier PFX du certificat SSL à l'aide du Gestionnaire de certificats Windows.
http://windows.Microsoft.com/en-us/windows-Vista/view-or-manage-your-certificates
Essayez:
Selon le billet de blog MSDN , cela peut se produire lorsque le compte d'utilisateur actuel n'a pas l'autorisation d'accéder au fichier de clé privée situé dans le dossier "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. ". Apparemment, cela peut être résolu en accordant au compte/groupe d'utilisateurs Accès complet l'autorisation sur le dossier ci-dessus.
J'ai rencontré le même problème et j'ai pu le résoudre en réimportant simplement le fichier .pfx avec le fichier Autoriser ce certificat à être exporté case à cocher sélectionné.
Cependant, cette méthode pose un risque de sécurité - comme tout utilisateur qui a L’accès à votre serveur IIS pourra exporter votre certificat avec la clé privée.
Dans mon cas, je n'ai accès qu'à mon serveur IIS. Par conséquent, le risque n'était pas énorme.
Au lieu d'importer le certificat d'IIS, faites-le à partir de MMC . Ensuite, passez à IIS pour la liaison.
Je devenais une cette erreur en essayant de lier localhost pfx cert pour ma machine de développement . Avant que j'ai essayé tout cela ci-dessus, essayé quelque chose de plus simple en premier.
Tout semble fonctionner après ça.
Dans mon cas, j'ai récemment importé une version plus récente d'un certificat (PFX pour IIS) à partir de StartSSL et j'ai oublié de supprimer l'ancien, ce qui a en quelque sorte causé cette erreur (maintenant, deux certificats sont identiques). J'ai enlevé les deux, importé le bon, et maintenant ça marche.