Ich muss TLS 1.2 verwenden, um eine Verbindung von meinem .NET-Webdienst zu einem anderen herzustellen, der TLS 1.2 erzwingen wird. Ich fand eine Ressource, die besagt, dass .NET 4.6 standardmäßig TLS 1.2 verwendet, so dass es wie die einfachste Lösung klang. 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 fand ich etwas, das sagte, dass es noch 4.0 sagen würde, weil 4.6 ein "in Stelle" Update zu .NET 4.0 ist. Also dachte ich, ich wäre vielleicht fertig. Aber auf einer Fehlerseite, die ich aus nicht miteinander verbundenen Gründen bekam, hieß es Microsoft .NET Framework Version:4.0.30319
, also scheint es, dass ich nicht erfolgreich aufgerüstet habe. Gibt es Hinweise darauf, wie Sie sicherstellen können, dass mein Anwendungspool .NET 4.6 verwendet, oder allgemeiner gesagt, wie Sie TLS 1.2 aktivieren?.NET-Webdienst für die Verwendung von TLS 1.2 aktualisieren
Antwort
Wir haben gerade einen .NET-Webdienst auf 4.6 aktualisiert, um TLS 1.2 zuzulassen.
Was Artem sagt, waren die ersten Schritte, die wir gemacht haben. Wir haben das Framework des Webdienstes auf 4.6 neu kompiliert und wir haben versucht, den Registrierungsschlüssel zu ändern, um TLS 1.2 zu aktivieren, obwohl dies nicht funktionierte: Die Verbindung befand sich immer noch in TLS 1.0. Außerdem wollten wir SLL 3.0, TLS 1.0 oder TLS 1.1 nicht auf der Maschine verbieten: andere Webdienste könnten dies verwenden; Wir rolle unsere Änderungen in der Registrierung zurück.
Wir haben tatsächlich die Web.Config-Dateien geändert, um IIS zu sagen: "Hey, lass mich in 4.6 bitte".
Hier die Änderungen ist, die wir in der web.config + Neuübersetzung in .NET hinzugefügt 4.6:
<system.web>
<compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->
<!--Added this httpRuntime -->
<httpRuntime targetFramework="4.6" />
<authentication mode="Windows"/>
<pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>
und die Verbindung geändert TLS 1.2, da IIS nun den Web-Service in 4.6 läuft (sagte ausdrücklich) und 4.6 verwendet TLS 1.2 standardmäßig.
Hier ist die Dokumentation, die wir für die Recherche verwendet haben: [HTTPRuntime] (https: // blogs .msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework /), [RenderingCompatibility] (https://msdn.microsoft.com/de-de/library/system.web.ui .control.renderingcompatibility (v = vs.110) .aspx) –
Ich habe diese Änderungen an meiner web.config vorgenommen, neu erstellt, implementiert und ich bekomme 'System.Net.WebException: Die Anfrage ist mit einer leeren Antwort fehlgeschlagen.' Ich weiß nicht, ob es von meinem Ende oder einem Problem auf der anderen Seite ist. Irgendeine Idee, wie man überprüft, dass ich TLS 1.2 verwende? – nasch
Sie können einen Netzwerkprotokollanalysator wie [Wireshark] (https://www.wireshark.org/) verwenden, um den Status Ihrer Verbindung zu überprüfen. –
den folgenden Code hinzufügen, bevor Sie Ihren Web-Service-Client instanziiert:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Ja, ich mache das schon, aber die Fehlermeldung zeigt immer noch .NET 4.0 an. – nasch
Das ist Ihre CLR-Version. Die .Net CLR hat zwei Versionen, 2.0 und 4.0. In IIS geben Sie die CLR-Version und nicht die Framework-Version an. IIS wird Ihnen .Net 4.6 nicht sagen, weil es das nicht interessiert. Wenn Sie mit 4.6 kompiliert haben, verwenden Sie 4.6. – Amy
drei Schritte erforderlich:
markieren Explizit SSL2.0, TLS1.0, TLS1.1 als verboten, Ihr Server-Computer, indem Sie
Enabled=0
undDisabledByDefault=1
zu Ihrer Registrierung hinzufügen (der vollständige Pfad istHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
). Siehe Bildschirm für DetailsExplizit
TLS1.2
aktivieren, indem Sie die Schritte von 1. Verwenden Sie einfachEnabled=1
undDisabledByDefault=0
sind.
ANMERKUNG: überprüfen Server-Version: Windows Server 2003
nicht das TLS 1.2
Protokoll
aktivieren
TLS1.2
nur auf App-Ebene, wie @ John Wu oben vorgeschlagen unterstützt.System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Hoffnung dieser Leitfaden hilft.
Offizielle Referenz - https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12 – Subbu
- 1. Verwendung von TLS 1.2 von Java 6
- 2. Verwendung von TLS 1.2 in Java 6
- 3. Aktivieren Sie die Verwendung von TLS 1.2 in SoapUI Pro
- 4. Kompatible Oracle Version für TLS 1.2
- 5. Ejabberd tls 1.2 nur
- 6. Wie aktualisiere ich Stripe für TLS 1.2
- 7. TLS 1.2 ECDHE_RSA-Signatur
- 8. Ebay API SSL? tls 1.2
- 9. TLS 1.2-Konfiguration für Hybris-Server
- 10. TLS 1.1/1.2 Unterstützung für Xamarin.Android
- 11. TLS 1.2-Verbindungen für den Zahlungsprozessor
- 12. Fedora-Konfiguration zum Aktivieren von TLS 1.2
- 13. Wie erzwinge Netty Server für die Kommunikation über TLS 1.2?
- 14. Aktivieren von TLS 1.2 in Java 1.6
- 15. Unterstützt Apache CXF TLS 1.2?
- 16. Powershell Einstellung Sicherheitsprotokoll TLS 1.2
- 17. TLS 1.2 in .NET Framework 4.0
- 18. Client beendete Nachricht in TLS 1.2?
- 19. Wie unterstützt man TLS 1.1, 1.2 für Python (2.7)
- 20. SSL TLS 1.2 Kanalerstellung VB.net HTTPS WebRequest
- 21. Konfigurieren Sie Microsoft C++ Rest SDK für Verwendung von TLS 1.1 oder 1.2
- 22. TLS 1.2 in Mono auf ubuntu
- 23. Senden TLS 1.2 Anfrage in Python 2.6
- 24. Aktivieren TLS 1.2 auf Mac OSX
- 25. Xamarin-Formulare - Salesforce - TLS 1.1 oder TLS 1.2. Fehler für POST-API-Aufruf für Android
- 26. Paypal TLS 1.2 und .NET 3.5 Kompatibilität
- 27. Android 4.2.2, Wie TLS 1.2 für HttpsURLConnection aktivieren?
- 28. TLS 1.2 funktioniert nicht in cURL
- 29. Wie aktivieren Sie die Komprimierungsmethode in Tls-1.2
- 30. TLS 1.2 - POST zu 2 IP-Adressen?
Ich glaube, dass TLS12 auf dem Server aktiviert sein muss. https://support.quovadisglobal.com/kb/a433/how-to-enable-tls-1_2-on-windows-server-2008-r2.aspx – lcryder
Warum die downvotes? – nasch