Ich muss TLS 1.2 verwenden, um eine Verbindung von meinem .NET-Webdienst zu einem anderen herzustellen, der TLS 1.2 erzwingen wird. Ich habe eine Ressource gefunden, die besagt, dass .NET 4.6 standardmäßig TLS 1.2 verwendet, sodass dies nach der einfachsten Lösung klingt. Ich habe das .NET Framework auf dem Server aktualisiert und neu gestartet. In IIS habe ich versucht, einen Anwendungspool mit .NET 4.6 zu erstellen, aber 4.0 war die einzige Option. Dann habe ich etwas gefunden, das besagt, dass immer noch 4.0 angezeigt wird, da 4.6 ein "In-Place" -Update für .NET 4.0 ist. Also dachte ich, vielleicht wäre ich fertig. Auf einer Fehlerseite, die ich aus nicht verwandten Gründen erhalten habe, heißt Microsoft .NET Framework Version:4.0.30319
es jedoch, dass ich anscheinend kein erfolgreiches Upgrade durchgeführt habe. Gibt es Hinweise, wie Sie sicherstellen können, dass mein Anwendungspool .NET 4.6 verwendet, oder allgemeiner, wie Sie TLS 1.2 aktivieren?
94
Antworten:
Wir haben gerade einen .NET-Webdienst auf 4.6 aktualisiert, um TLS 1.2 zuzulassen.
Was Artem sagt, waren die ersten Schritte, die wir getan haben. Wir haben das Framework des Webdienstes auf 4.6 neu kompiliert und versucht, den Registrierungsschlüssel so zu ändern, dass TLS 1.2 aktiviert wird, obwohl dies nicht funktioniert hat: Die Verbindung war noch in TLS 1.0. Außerdem wollten wir SLL 3.0, TLS 1.0 oder TLS 1.1 auf dem Computer nicht verbieten: Andere Webdienste könnten dies verwenden. Wir haben unsere Änderungen in der Registrierung rückgängig gemacht.
Wir haben die Web.Config-Dateien tatsächlich geändert, um IIS mitzuteilen: "Hey, führen Sie mich bitte in 4.6 aus."
Hier sind die Änderungen, die wir in der web.config + Neukompilierung in .NET 4.6 hinzugefügt haben:
Die Verbindung wurde auf TLS 1.2 geändert, da IIS den Webdienst jetzt in 4.6 ausführt (explizit angegeben) und 4.6 standardmäßig TLS 1.2 verwendet.
quelle
Fügen Sie den folgenden Code hinzu, bevor Sie Ihren Webdienst-Client instanziieren:
Oder für die Abwärtskompatibilität mit TLS 1.1 und früheren Versionen:
quelle
wenn Sie mit .Net früher als 4,5 Sie werden nicht Tls12 im Enum haben so Zustand explizit erwähnt wird hier
quelle
Drei Schritte erforderlich:
Markieren Sie SSL2.0, TLS1.0, TLS1.1 explizit auf Ihrem Server als verboten, indem Sie
Enabled=0
undDisabledByDefault=1
zu Ihrer Registrierung hinzufügen (der vollständige Pfad lautetHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
). Siehe Bildschirm für DetailsExplizit ermöglichen ,
TLS1.2
indem sie die Schritte von 1. Benutzen Sie einfach folgendenEnabled=1
undDisabledByDefault=0
jeweils.HINWEIS: Serverversion überprüfen:
Windows Server 2003
Unterstützt dasTLS 1.2
Protokoll nichtAktivieren Sie
TLS1.2
nur auf App - Ebene, wie @ John Wu oben vorgeschlagen.System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Hoffe, dieser Leitfaden hilft.
UPDATE Wie @Subbu erwähnt: Offizieller Leitfaden
quelle
Für mich hat unten gearbeitet:
Schritt 1: Laden Sie die Web Installer-Exe von https://www.microsoft.com/en-us/download/details.aspx?id=48137 auf den Anwendungsserver herunter und installieren Sie sie . Starten Sie den Anwendungsserver nach Abschluss der Installation neu.
Schritt 2: Die folgenden Änderungen wurden in der web.config hinzugefügt
Schritt 3: Nach Abschluss der Schritte 1 und 2 wurde der Fehler " WebForms UnobtrusiveValidationMode erfordert ein ScriptResourceMapping für 'jquery'. Bitte fügen Sie ein ScriptResourceMapping mit dem Namen jquery (Groß- und Kleinschreibung beachten) hinzu" angezeigt. Um diesen Fehler zu beheben, habe ich den folgenden Schlüssel in den Einstellungen hinzugefügt in meiner web.config Datei
quelle
PowerBI Embedded erfordert TLS 1.2.
Die obige Antwort von Etienne Faucher ist Ihre Lösung. Schnelllink zur obigen Antwort ... Schnelllink zur obigen Antwort ... ( https://stackoverflow.com/a/45442874 )
PowerBI erfordert TLS 1.2 Juni 2020 - Dies ist Ihre Antwort - Erwägen Sie, Ihre IIS-Laufzeit auf 4.6 zu zwingen, um das von Ihnen gesuchte Standardverhalten von TLS 1.2 aus dem Framework zu erzwingen. Die obige Antwort gibt Ihnen eine Lösung nur für Konfigurationsänderungen.
Symptome : Erzwungene geschlossene abgelehnte abgelehnte TCP / IP-Verbindung zu Microsoft PowerBI Embedded, die auf allen Systemen plötzlich angezeigt wird.
Diese PowerBI-Aufrufe funktionieren nicht mehr mit einem Hard TCP / IP Close-Fehler, als würde eine Firewall eine Verbindung blockieren. Normalerweise funktionieren die Authentifizierungsschritte. Wenn Sie den Dienst für einen bestimmten Arbeitsbereich aufrufen und IDs melden, schlägt dies fehl.
Dies ist der 2020-Hinweis von Microsoft PowerBI zu TLS 1.2
PowerBIClient
Methoden, die dieses Problem zeigen
GetReportsInGroupAsync GetReportsInGroupAsAdminAsync GetReportsAsync GetReportsAsAdminAsync Microsoft.PowerBI.Api HttpClientHandler TLS 1.1 TLS 1.2 erzwingen
Suchfehlerbegriffe, um Personen beim Auffinden zu helfen: System.Net.Http.HttpRequestException: Beim Senden der Anforderung ist ein Fehler aufgetreten. System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Beim Senden ist ein unerwarteter Fehler aufgetreten. System.IO.IOException: Daten von der Transportverbindung können nicht gelesen werden: Eine vorhandene Verbindung wurde vom Remote-Host zwangsweise geschlossen.
quelle