web-dev-qa-db-fra.com

Comment puis-je restaurer un manquant IIS Certificat SSL Express?

Après avoir configuré HTTPS dans IIS Express, conformément à des articles tels que this et this , je ne parviens pas à charger un site IIS Express à l’aide de HTTPS. Dans Chrome, je ne reçois que:

Cette page Web n'est pas disponible (avec le code d'erreur "ERR_CONNECTION_RESET")

... et dans IE je ne reçois que:

Internet Explorer ne peut pas afficher la page internet

... quand je suis les instructions dans ces articles.

Cela semble être dû au fait que le "certificat de développement IIS Express" que IIS installe automatiquement a été supprimé. Comment puis-je réinstaller ce certificat?

116
Chris Simmons

Après avoir accédé à Ajout/Suppression de programmes et choisi l'option "Réparer" de IIS Express, le certificat a été réinstallé et je peux maintenant lancer les sites IIS Express à l'aide de HTTPS.

Repair IIS Express

Le certificat est de retour:

IIS Express Development Certificate

Et je peux maintenant lancer le site IIS Express en utilisant HTTPS:

Success!

171
Chris Simmons

Pour Visual Studio 2015, IIS Express 10, Windows 10, ces options ne fonctionnaient pas pour moi. IIS Express 10 ne disposait pas d'une option de réparation.

J'ai réussi à résoudre le problème en utilisant la commande IisExpressAdminCmd.exe disponible à C:\Program Files (x86)\IIS Express.

À partir d'une invite de commande élevée, exécutez:

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned

Remplacement de urlToYourSite par votre url.

par exemple.

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned

Après cela, j'ai fermé IIS Express et redémarré mon site à partir de Visual Studio, qui m'a alors demandé de faire confiance au certificat auto-signé.

J'espère que cela pourra aider.

117
Bernie White

Parfois, cette erreur est due à un certificat different installé pour localhost. Si tel est le cas, il n'est pas nécessaire de restaurer le certificat Express IIS. Au lieu de cela, vous pouvez procéder comme suit pour indiquer à IIS Express d'utiliser votre certificat existant:

  1. Ouvrez le composant logiciel enfichable Certificats MMC comme décrit ici
  2. Trouvez votre certificat localhost, par exemple. sous Personal ... Certicates et obtenez son empreinte de pouce:
    1. Affichez la boîte de dialogue des propriétés du certificat localhost et recherchez la propriété Thumbprint.
    2. Collez la valeur d'empreinte dans Bloc-notes (ou autre) et supprimez les espaces et les caractères spéciaux au début.
  3. Recherchez la valeur de port de votre projet IIS Express:
    1. Accédez aux propriétés du projet dans Visual Studio et recherchez la valeur "URL SSL", par exemple. " https: // localhost: 44300/MyApp ". 
    2. Dans cet exemple, 44300 est le numéro de port. Si le vôtre est différent, changez cette valeur dans les commandes ultérieures.
  4. Utilisez les commandes suivantes dans une invite de commande administrative (autre que Powershell):

netsh http delete sslcert ipport=0.0.0.0:44300

netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}

Le Guid dans la commande ci-dessus peut être remplacé par celui que vous générez. Elle ne correspond à aucune valeur IIS Express existante.

Pour plus de détails, voir Gestion des échecs de liaison d’URL dans IIS Express .

30
explunit

Notez également que pour que IIS Express fonctionne avec SSL, le port utilisé doit être compris entre 44300 et 44399 ( http://www.iis.net/learn/extensions/using-iis- express/running-iis-express-without-administrative-privileges ).

Ainsi, si vous utilisez IIS Express dans Visual Studio, assurez-vous que le port sélectionné est dans la plage requise: paramètre vs pour iis express

27
Shiraz

Avec le nouveau Chrome 58, rien des réponses ci-dessous ne vous aidera. Je viens de passer 1 heure à désinstaller/réinstaller les certificats et à essayer de trouver la cause du problème. 

Apparemment, Chrome 58 refusera le certificat car "missing_subjectAltName"

La solution est soit le mot de passe "badidea" ou si vous avez besoin d'ouvrir des popups pour vous connecter, vous devez utiliser:

chrome: // flags/# allow-insecure-localhost

La source est et le vote positif appartient à: https://stackoverflow.com/a/38926117/2089232 :)

11
milanio

Je voulais ajouter ceci, parce que c'est ridicule, mais peut-être que cela aidera quelqu'un. N'oubliez pas que je n'avais jamais ouvert les propriétés de mon projet auparavant. Je ne sais donc pas comment cela s'est passé (je n'ai pas modifié cela moi-même ni n'en ai l'opportunité), mais dans Projet> Propriétés> Web, mon URL SSL était indiquée comme étant mon URL habituelle mais en tant que http au lieu de https (auparavant, https car cela fonctionnait auparavant). J'ai parcouru toutes les étapes énumérées sur cette page, désinstallé VS, puis IIS et enfin remarqué l'erreur qui aurait dû être https: // mySSLURL (mais il manquait le s dans https). Une fois que j'ai changé http en https, tout a encore fonctionné.

1
Elijah Tate

Vous pouvez réinstaller IIS Express 10.0 (ou la version dont vous avez besoin) pour réparer le certificat manquant. Téléchargez à partir de Microsoft ici

0
TetraDev