Das https-Protokoll funktioniert unter IIS 10 nach dem Upgrade von Windows 7 nicht

Das https-Protokoll funktioniert unter IIS 10 nach dem Upgrade von Windows 7 nicht

Ich habe eine ASP-Anwendung, die in IIS 7.5 läuft. Aufgrund des Endes der Lebensdauer von Windows 7 musste ich auf Windows 10 und IIS 10 aktualisieren. Alles schien an seinem Platz, außer dass jetzt die ASP-Site oder jede andere Website funktioniert, außer wenn https verwendet wird. Bisher gibt mir Firefox PR_CONNECT_RESET_ERROR, Chrome gibt ERR_SSL_PROTOCOL_ERROR zurück und Edge gibt ein Hmmm zurück, diese Seite kann nicht erreicht werden.

Einige Antworten verweisen auf das ARR Rewrite-Modul, das ich deinstallierte und nach dem Neustart die aktualisierte Version mit demselben Ergebnis neu installierte. Ich deinstallierte es schließlich (ich brauche es nicht mehr) und startete neu. Ich installiere IIS neu, eliminiere Windows-Funktionen, starte neu und installiere IIS erneut und starte neu. Ich entferne alle Zertifikate und erstelle ein selbstsigniertes und dasselbe Problem. Schließlich lösche ich alle meine Websites von diesem Webserver und erstelle eine neue im Standardverzeichnis (wwwroot, das eine HTML-Datei und zwei Bilder enthält), die angezeigt wird, solange das HTTP-Protokoll verwendet wird, aber nicht HTTPS (dieselben Fehler). Ich folgtedieser Leitfadenfür IIS 7, aber kein Erfolg. Ich widerrufe auch die Berechtigungen für die Ordner und gewähre sie IUSR nach Neuinstallationen erneut. Schließlich habe ich die SSL-Filterung des Antivirus deaktiviert, aber kein Unterschied.

Das ursprünglich verwendete Zertifikat wurde intern mit OpenSSL erstellt, um ein unternehmensweites Stammzertifikat, ein Zwischenzertifikat und das Maschinenzertifikat zu generieren, was bis zum Upgrade gut funktionierte. Derzeit funktioniert es, wie gesagt, selbst mit dem selbstsignierten Zertifikat in keinem der verwendeten Browser, um die einfachsten Inhalte bereitzustellen. Mir gehen die Ideen aus, was ich überprüfen könnte.

Dies ist die Ablaufverfolgung, die ich von IIS erhalten habe

 #Software: Microsoft Internet Information Services 10.0
 #Version: 1.0
 #Date: 2020-01-20 20:12:22
 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
 2020-01-20 20:12:22 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 200 0 0 2687
 2020-01-20 20:12:22 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 http://devmachine.company.local/ 200 0 0 12
 2020-01-20 20:12:22 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 404 0 2 5
 #Software: Microsoft Internet Information Services 10.0
 #Version: 1.0
 #Date: 2020-01-20 12:26:37
 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
 2020-01-20 20:12:22 ::1 GET / - 443 - ::1 Microsoft+Windows+Network+Diagnostics - 200 0 0 996
 2020-01-20 20:12:22 192.168.1.100 HEAD / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 19
 2020-01-20 20:27:38 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 8
 2020-01-20 20:27:38 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 200 0 0 50
 2020-01-20 20:27:38 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 404 0 2 19

Wie Sie sehen, hat nur http funktioniert (ich habe die Zeit in einem weiteren Versuch geändert, um festzustellen, ob ein Problem mit der Uhr vorlag, aber das war nicht der Fall. Chrome hat sich bei http beschwert, also war die Uhr in Ordnung), aber es gibt keine Spur für https.

Antwort1

Ich habe die Antwort selbst gefunden. Das Problem war, dass sich die Chiffren im Laufe der Jahre geändert haben, aber nur für Windows 2012- und 2016-Server wurden entsprechende Updates durchgeführt, nicht jedoch für ältere Versionen, und Windows 10 hatte diese Einträge bereits und wurde entsprechend aktualisiert. Folglich gibt es einige Registrierungseinträge, die nicht vorhanden sind und die die Art und Weise beeinflussen, wie SSL in IIS nach dem Upgrade behandelt wird. Um zu testen, ob dies der Fall ist, öffnen Sie eine neue Registerkarte in Firefox, geben Sie about:config ein, suchen Sie nach security.tls.version.max, setzen Sie es auf 3 und speichern Sie. Wenn Sie versuchen, auf die Website zu gehen, funktioniert es oder zeigt zumindest die übliche Warnung an, dass das Zertifikat nicht korrekt ist. Wenn ja, machen Sie die Änderung in Firefox rückgängig und führen Sie die dargestellte Lösung ausHier; die ich trotzdem beschreiben werde, nur für den Fall, dass diese Seiten vergessen oder gelöscht werden.

Das gesamte Problem wird behoben, indem die Registrierung in den folgenden Einträgen aktualisiert wird, die erstellt oder geändert werden sollten, je nachdem, ob Sie bereits zuvor einige der Änderungen zur Stärkung der Sicherheit auf Ihrem Webserver vorgenommen haben.

WinHTTP aktualisieren

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
  DefaultSecureProtocols = (DWORD): 0xAA0
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
  DefaultSecureProtocols = (DWORD): 0xAA0

Aktivieren Sie TLS 1.2, falls noch nicht geschehen.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
  "SystemDefaultTlsVersions" = dword:00000001
  "SchUseStrongCrypto" = dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
  "SystemDefaultTlsVersions" = dword:00000001
  "SchUseStrongCrypto" = dword:00000001

Wenn Ihre Anwendung ein 32-Bit- oder 64-Bit-Betriebssystem ist, ändern Sie auch

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
  "SystemDefaultTlsVersions" = dword:00000001
  "SchUseStrongCrypto" = dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
  "SystemDefaultTlsVersions" = dword:00000001
  "SchUseStrongCrypto" = dword:00000001

Konfigurieren Sie SCHANNEL-Protokolle, falls Sie dies noch nicht getan haben, um TLS 1.2 zu aktivieren

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
  "DisabledByDefault" = dword:00000000
  "Enabled" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
  "DisabledByDefault" = dword:00000000
  "Enabled" = dword:0xffffffff

Stellen Sie sicher, dass TLS 1.1 dasselbe ist wie TLS 1.2, wenn Sie es für ältere Anwendungen/Browser unterstützen möchten. Es ist ratsam, schwache Chiffren wie SSL und, wenn möglich, TLS 1.0 (DisableByDefault = dword:00000001 Enabled=00000001 für Client und Server. Diese Einträge befinden sich in TLS 1.0, das sich auf derselben Ebene wie TLS 1.1 und TLS 1.2 befindet) zu deaktivieren und den Computer neu zu starten.

Wenn alles gut geht, wird Ihre Anwendung wieder funktionieren oder zumindest die übliche Meldung über Sicherheitsrisiken aufgrund des selbstsignierten Zertifikats erscheinen. Ich hoffe, das funktioniert für Sie und stimmen Sie bitte positiv ab, wenn es Ihnen hilft, das Problem zu lösen. Vielen Dank im Voraus.

Hinweis: Sie können die richtigen Regedit-Werte mithilfe der hier bereitgestellten Skripts festlegen/löschen:https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12

Antwort2

Ich hatte das Bedürfnis, diesen Artikel zu posten, nachdem ich lange nach ihm gesucht hatte. Er trifft im Wesentlichen den Nagel auf den Kopf.

ich hatte einige Probleme – also Vorschläge.

  1. Verwenden Sie das Skript unten im Vorschlag von der MS-Site. Es muss als Administrator ausgeführt werden.
  2. Wenn das Skript nicht funktioniert, löschen Sie alle erstellten Schlüssel und versuchen Sie es dann erneut mit dem Skript.

Wenn Sie das Problem beim Update auf Server 2019 verursacht haben und Ihr IIS-Server eine Verbindung zu einem SQL 2012-Server herstellt, stellen Sie sicher, dass dieser auf SP4 gepatcht ist. :)

verwandte Informationen