web-dev-qa-db-fra.com

IIS 7 Erreur "Une session d’ouverture de session spécifiée n’existe pas. Elle est peut-être déjà terminée." en utilisant https

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:

enter image description here

Aucune suggestion?

56
enb081

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.

10
enb081

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:

IIS certificates

mmc.exe --> add/remove snap-ins, choose certificates then local computer or current user

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:

  1. Cliquez avec le bouton droit sur le nœud Certificats sous Personnel (sous Ordinateur local en tant que racine).
  2. Toutes les tâches -> Importer
  3. Passez par le Wizard pour importer votre * .pfx

À 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.

65
Mike L

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:

 enter image description here

(merci à ce post !)

48
Roman Starkov

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.

7
SkankyMidget

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é.

5
Paulo Dinis

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.

5
steve-warren

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 ...

2
Edgar

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.

2
Der_Meister

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. 

1
user2034250

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

0
jorel

Essayez:

  1. Allez dans IIS et supprimez le site Web "VSTS Dev Router" et le pool d'applications "VSTS Dev Router Pool".
  2. Exécutez «certlm.msc» et ouvrez Personal/Certificates
  3. Supprimer tout certificat nommé “* .vsts.me” et “vsts.me”
  4. Redéployer
0
Vikas Gupta

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é.

 Import Certificate

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.

0
Janaka Dissanayake

Au lieu d'importer le certificat d'IIS, faites-le à partir de MMC . Ensuite, passez à IIS pour la liaison.

0
Kuldeep Heggana

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.

  1. Fermé tout site de développement localhost que j'avais ouvert.
  2. Arrêté mon serveur IIS et fermé le gestionnaire
  3. exécuter le gestionnaire en tant qu'administrateur
  4. Ajout de toutes mes liaisons https, aucune erreur ni problème pour le moment.
  5. iIS redémarré

Tout semble fonctionner après ça.

0
Yogurt The Wise

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.

0
James Wilkins