Wie stelle ich ein fehlendes IIS Express SSL-Zertifikat wieder her?


134

Nach dem Einrichten von HTTPS in IIS Express kann ich gemäß Artikeln wie diesem und jenem keine IIS Express-Site mithilfe von HTTPS laden. In Chrome ich nur:

Diese Webseite ist nicht verfügbar (mit Fehlercode "ERR_CONNECTION_RESET")

... und im IE ich nur:

Internet Explorer kann die Webseite nicht anzeigen

... wenn ich den Anweisungen in diesen Artikeln folge.

Dies hat anscheinend damit zu tun, dass das "IIS Express-Entwicklungszertifikat", das IIS Express automatisch installiert, entfernt wurde. Wie kann ich dieses Zertifikat neu installieren?


2
Ich bin auch versucht, IISExpress auf Port 443 (oder tatsächlich auf einem Port außerhalb des Bereichs 44300-44399) auszuführen
Gerardo Grignoli

Hinweis: Die akzeptierte Antwort auf diese Frage gilt auch dann, wenn das IIS Express localhost-Zertifikat vorhanden ist und in Ordnung zu sein scheint.
Haymansfield

Antworten:


192

Nachdem Sie in IIS Express die Option "Reparieren" ausgewählt haben, wurde das Zertifikat neu installiert und ich kann jetzt IIS Express-Sites mit HTTPS starten.

Reparieren Sie IIS Express

Das Zertifikat ist zurück:

IIS Express-Entwicklungszertifikat

Und ich kann jetzt die IIS Express-Site mit HTTPS starten:

Erfolg!


1
Funktioniert auch für mich, aber in meinem Fall war das Zertifikat da. Ich weiß nicht warum, aber das führte zu demselben Fehler. Also habe ich das Zertifikat entfernt und 'Reparieren' dieses wieder installiert und voila. Vielen Dank.
Darius

37
Hinweis für Windows 10-Benutzer: Die Reparatur erfolgt nur in der Systemsteuerung, nicht in der App "Programme entfernen". Geniale Idee msft.
Chris Weber

1
Eine viel schnellere Möglichkeit besteht darin, Jexus Manager zu starten, ein neues Zertifikat zu generieren und dann an Ihre Site zu binden. jexusmanager.com Natürlich werden defekte Zertifikatsbindungen noch nicht behoben, und ich werde sehen, wie man dies zu einer Ein-Klick-Funktion macht.
Lex Li

Die Reparatur funktioniert, aber ich musste alle vorhandenen Zertifikate mit MMC löschen. Das Problem, auf das ich stieß, war, dass ich sie nicht als Administrator von localMachine löschte. Stellen Sie sicher, dass Sie MMC mit erhöhten Berechtigungen ausführen!
Ranieuwe

6
Hinweis für VS2019-Benutzer: "Reparieren" funktioniert nicht, da das Visual Studio-Installationsprogramm die MSI-Datei nicht dort ablegt, wo die Systemsteuerung dies erwartet. In _package.json demselben Verzeichnis befindet sich jedoch eine Datei, die die URL der MSI-Datei enthält. Sie können dies entweder manuell ausführen oder an die Stelle kopieren, an der die Systemsteuerung dies erwartet.
Chris R. Donnelly

155

Für Visual Studio 2015, IIS Express 10, Windows 10 haben diese Optionen bei mir nicht funktioniert. IIS Express 10 hatte keine Reparaturoption.

Ich habe es geschafft, das Problem mit dem IisExpressAdminCmd.exeBefehl zu lösen, der unter verfügbar ist C:\Program Files (x86)\IIS Express.

Führen Sie an einer Eingabeaufforderung mit erhöhten Rechten Folgendes aus:

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

Ersetzen von urlToYourSite durch Ihre URL.

z.B

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

Danach habe ich IIS Express geschlossen und meine Site von Visual Studio aus neu gestartet. Das selbstsignierte Zertifikat wurde automatisch als vertrauenswürdig eingestuft.

Hoffentlich hilft das.


3
Dies funktionierte für mich beim Versuch, IISExpress auf Port 443 auszuführen. +1
Gerardo Grignoli

Diese Lösung hat bei mir hervorragend funktioniert. Windows 10, Visual Studio 2015, IIS Express 10.
Glenn

1
Wenn hier jemand Probleme hat, einen bestimmten Port von IIS Express zu verwenden, sollten Sie überprüfen, ob jemand eine Site hat, die über diesen Port in IIS registriert ist. Das war heute mein Tag.
Chris Marisic

2
In Windows 10 verfügt IIS Express über eine Reparaturoption. Sie müssen die Systemsteuerung durchlaufen. Akzeptierte Antwort hat bei mir funktioniert.
Joerage

1
Wenn Sie es leid sind, die Befehlszeile zu verwenden, können Sie Jexus Manager verwenden, um dasselbe zu tun: blog.lextudio.com/…
Lex Li

40

Manchmal ist dieser Fehler auf ein anderes Zertifikat zurückzuführen, das für localhost installiert wurde. In diesem Fall muss das IIS Express-Zertifikat nicht wiederhergestellt werden. Stattdessen können Sie IIS Express wie folgt anweisen, Ihr vorhandenes Zertifikat zu verwenden:

  1. Öffnen Sie das Zertifikat-MMC-Snap-In wie beschrieben hier
  2. Finden Sie Ihr localhost-Zertifikat, z. B. unter Persönliche ... Zertifikate, und erhalten Sie den Fingerabdruck:
    1. Rufen Sie den Eigenschaftendialog für das localhost-Zertifikat auf und suchen Sie die Thumbprint-Eigenschaft
    2. Fügen Sie den Fingerabdruckwert in den Editor (oder was auch immer) ein und entfernen Sie die Leerzeichen und Sonderzeichen am Anfang
  3. Suchen Sie den Portwert Ihres IIS Express-Projekts:
    1. Gehen Sie zu den Projekteigenschaften in Visual Studio und suchen Sie den Wert "SSL URL", z. B. " https: // localhost: 44300 / MyApp ".
    2. In diesem Beispiel ist 44300 die Portnummer. Wenn Ihr Wert anders ist, ändern Sie diesen Wert in den späteren Befehlen.
  4. Verwenden Sie die folgenden Befehle in einer administrativen Eingabeaufforderung (nicht 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}

Die Guid im obigen Befehl kann durch eine von Ihnen generierte ersetzt werden. Es entspricht keinem vorhandenen IIS Express-Wert.

Weitere Informationen finden Sie unter Behandeln von URL-Bindungsfehlern in IIS Express .


2
Eine visuellere Möglichkeit ist die Verwendung von Jexus Manager, blog.lextudio.com/…. Dann müssen Sie sich nicht an Details wie Zertifikat-Hash erinnern.
Lex Li

wenn Sie "Der Parameter ist falsch." Fehler - Verwenden Sie diese App zuerst, dann Certhash. Beispiel: netsh http add sslcert ipport = 0.0.0.0: 44300 appid = {C21B9F4D-2A5D-4160-81C8-FBCC3EFC335E} certhash = your_cert_hash_with_no_spaces
gmsi

36

Beachten Sie außerdem, dass für die Verwendung von IIS Express mit SSL der verwendete Port im Bereich von 44300 bis 44399 liegen muss ( http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-). ohne Administratorrechte ).

Wenn Sie IIS Express in Visual Studio verwenden, stellen Sie sicher, dass der ausgewählte Port im erforderlichen Bereich liegt: vs Einstellung für iis Express


3
Ich konnte einen Port außerhalb dieses Bereichs verwenden, nachdem ich den Befehl in Bernie Whites Antwort ohne Probleme verwendet hatte. Windows 10 / Visual Studio Community 2015 / .Net Core 1.0.1 / IIS Express 10.0
Ryan Thomas

1
Vielen Dank! Dies löste das Problem für mich. Seltsam, dass Visual Studio nicht davor warnt.
Erwin Mayer

4
44300-44399 ist nur der Standardportbereich mit einem zugeordneten Zertifikat. Sie können auf einfache Weise eine ähnliche Zertifikatszuordnung erstellen netsh, indem Sie Jexus Manager, blog.lextudio.com/…
Lex Li,

12

Mit dem neuen Chrome 58 hilft nichts aus den folgenden Antworten. Ich habe gerade 1 Stunde damit verbracht, Zertifikate zu deinstallieren / neu zu installieren und herauszufinden, wo das Problem liegt.

Anscheinend wird Chrome 58 das Zertifikat ablehnen, weil "missing_subjectAltName"

Die Lösung ist entweder die Passphrase "badidea" oder wenn Sie Popups für die Anmeldung öffnen müssen, müssen Sie Folgendes verwenden:

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

Die Quelle ist und die positive Bewertung gehört zu: https://stackoverflow.com/a/38926117/2089232 :)




2

Ich wollte das hinzufügen, weil es lächerlich ist, aber vielleicht hilft es jemandem. Denken Sie daran, dass ich meine Projekteigenschaften noch nie zuvor geöffnet hatte, sodass ich keine Ahnung habe, wie dies passiert ist (ich habe dies nicht selbst geändert oder die Möglichkeit dazu gehabt), aber unter Projekt> Eigenschaften> Web wurde meine SSL-URL als meine übliche URL aufgeführt aber als http anstelle von https (war zuvor https, weil es vorher funktionierte). Ich habe alle auf dieser Seite aufgeführten Schritte durchlaufen, VS und dann IIS deinstalliert und schließlich den Fehler festgestellt, der https: // mySSLURL hätte sein sollen (aber das s in https fehlte). Nachdem ich http in https geändert hatte, funktionierte alles wieder.



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.