Windows Server 2012 R2 TLS 1.2-Problem

Windows Server 2012 R2 TLS 1.2-Problem

Ich habe Probleme mit TLS 1.2 auf meinem Windows Server 2012 R2 (Anwendungs-Webserver, IIS), wo ich nicht aufhttps://api.nuget.org/v3/index.jsonüber Internet Explorer, obwohl ich sehe, dass TLS 1.2 aktiviert wurde.

Ich habe einen anderen Server mit demselben Betriebssystem und denselben Betriebssystemupdates (aber ohne IIS) und dieser Server hat keine Probleme beim Zugriff auf die API oder andere Endpunkte mit TLS 1.2.

Auf dem problematischen Server habe ich Folgendes versucht:

  1. Habe IISCrypto verwendet, um alles zu aktivieren -> Neustart -> FEHLGESCHLAGEN
  2. Manuelles Ändern der Registrierungseinstellungen gemäß der Microsoft-Dokumentation -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- FEHLGESCHLAGEN
  3. Habe das folgende Skript verwendet, um TLS 1.2 vollständig zurückzusetzen und erneut zu aktivieren - https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- FEHLGESCHLAGEN

Mittlerweile habe ich fast drei Tage damit verbracht, die Probleme zwischen diesen beiden Servern zu beheben und herauszufinden, warum ein Windows-Server funktioniert und ein anderer nicht.

Alle Tipps, Schritte zur Fehlerbehebung oder Tools sind herzlich willkommen!

Screenshots Bildbeschreibung hier eingeben

  • über Nuget CLR
  • auf dem problematischen Server Bildbeschreibung hier eingeben
  • Auf dem Server, der funktioniert Bildbeschreibung hier eingeben

Antwort1

Nach stundenlanger Fehlersuche konnte ich das Problem endlich lösen und die API von unserem Server über TLS 1.2 zugänglich machen.

Wir haben .net Framework auf unserem Server, das Probleme beim Zugriff auf die API hatte. Microsoft empfiehlt, die folgende Registrierung festzulegen, um SystemDefaultTlsVersions zu erzwingen

Windows Registry Editor Version 5.00

[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

[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

Antwort2

Mein Ruf ist sehr niedrig, deshalb muss ich eine Antwort schreiben.

Die Browsermeldung kann irreführend sein

Sie sollten überprüfen, ob der DNS dasselbe Ziel auflöst und ob der Client irgendeine Art von Proxy erkennt.

Möglicherweise handelt es sich um eine Paketprüfung durch eine Firewall, möglicherweise mit transparentem Proxy.

Überprüfen Sie, welche Antwort Sie mit s_client in OpenSSL erhalten: https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server

Verwenden Sie DeveloperTools im Browser, um einen Blick auf „Netzwerk“ zu werfen und zu sehen, wohin Ihre Anfrage gesendet wurde (möglicherweise über einen Proxy) und welche Antwort Sie erhalten haben.

Deaktivieren Sie einige SSL/TLS-Prüfungen in Powershell: https://stackoverflow.com/questions/34331206/SSL-Warnung mit Powershell-Downloadstring ignorieren

Überprüfen Sie, ob beide die gleiche Netzwerkkonfiguration in Bezug auf IPv6 haben. Vielleicht stellt einer von ihnen deshalb eine Verbindung zu einem anderen Server her.

BEARBEITEN: Führen Sie zumindest die OpenSSL-Prüfung durch, um sicherzugehen, dass Sie das richtige Zertifikat erhalten. Deaktivieren Sie die SSL/TLS-Prüfung für Powershell und testen Sie, um das Problem zu ermitteln.

verwandte Informationen