Beschreibung: Anfrage abgebrochen: Fehler beim Erstellen des sicheren SSL/TLS-Kanals. Der sichere SSL/TLS-Kanal konnte nicht erstellt werden. Build-Plattformen: Windows Server 2012, Windows 7 Service Pack 1 (SP1) und Windows Server 2008 R2 SP1
[Folge] Website herunterladen Es handelt sich um ein Download-Tool für die gesamte Website. Geben Sie die URL zum Herunterladen mit einem Klick ein. Es ist einfach und benutzerfreundlich und verfügt über Multithread-Aufgaben.
Legen Sie den Code vor HttpWebRequest fest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
Wenn die obige Methode nicht funktioniert, handelt es sich um ein Problem auf Systemebene. Aktualisieren Sie den Systempatch entsprechend dem System, das Sie derzeit verwenden.
Update zur Aktivierung von TLS 1.1 und TLS 1.2 als Standardsicherheitsprotokolle in WinHTTP unter Windows. Dieses Update bietet Unterstützung für Transport Layer Security (TLS) in Windows Server 2012, Windows 7 Service Pack 1 (SP1) und Windows Server 2008 R2 SP1 1.1 und TLS 1.2-Unterstützung finden Sie in der offiziellen Dokumentation https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
Kopieren Sie den folgenden Registrierungscode und importieren Sie ihn in die Registrierung. Erstellen Sie eine neue TXT-Datei, ändern Sie das Suffix „txt“ in „reg“ (Registrierungsschlüssel) und importieren Sie es (erstellen Sie vor dem Importieren eine Sicherungskopie).
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
PowerShell öffnet sich:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Die erste Codezeile prüft die unterstützte TLS-Version. Die zweite Codezeile ändert die TLS-Unterstützung.
Keine der beiden vorherigen Methoden funktioniert, daher können Sie nur die ultimative Methode verwenden:
Hinweis: Informationen zu bestimmten TSL-Versionen, die von jeder Windows-Version unterstützt werden, finden Sie in den ergänzenden Informationen in diesem Artikel.
Es gibt Lösungen, die jedoch von der Framework-Version abhängen:
.NET 4.6 und höher. Für die Unterstützung von TLS 1.2 müssen Sie keine zusätzlichen Arbeiten ausführen, es wird standardmäßig unterstützt.
.NET 4.5. TLS 1.2 wird unterstützt, ist jedoch nicht das Standardprotokoll. Sie müssen sich dafür entscheiden, es zu verwenden. Der folgende Code legt TLS 1.2 als Standard fest. Stellen Sie sicher, dass Sie ihn ausführen, bevor Sie eine Verbindung zu einer sicheren Ressource herstellen:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 wird nicht unterstützt, aber wenn .NET 4.5 (oder höher) auf Ihrem System installiert ist, haben Sie immer noch die Möglichkeit, TLS 1.2 zu verwenden, auch wenn Ihr Anwendungsframework TLS 1.2 nicht unterstützt. Das einzige Problem besteht darin, dass SecurityProtocolType in .NET 4.0 keinen Eintrag für TLS1.2 hat, daher müssen wir die numerische Darstellung dieses Enum-Werts verwenden:
ServicePointManager.SecurityProtocol = (Sicherheitsprotokolltyp) 3072;
.NET 3.5 oder niedriger. TLS 1.2(*) wird nicht unterstützt und es gibt keine Problemumgehung. Aktualisieren Sie Ihre Anwendung auf die neueste Version des Frameworks.
PS: Für Szenario 3 gibt es auch einen Registry-Hack, der 4.5 dazu zwingt, TLS 1.2 standardmäßig zu verwenden, ohne dass dies programmgesteuert erzwungen werden muss. PPS Wie Christian Pop von Microsoft unten erwähnt, ist für .NET 3.5 ein aktueller Patch verfügbar, der TLS1.2-Unterstützung ermöglicht.
Sehen:
Möglicherweise beträgt die Länge des von der Website bereitgestellten Zertifikatsschlüssels 512 Bit und gemäß aktuellen Industriestandards sollte er einen öffentlichen Schlüssel von mindestens 2048 Bit enthalten. Das Sicherheitsupdate von Microsoft vom September 2016 reagierte auf dieses Problem mit der Aussage, dass, wenn die Länge des öffentlichen Schlüssels weniger als 2048 Byte beträgt (z. B. RSA 512),Windows kann HTTPS-Verbindungen abbrechen
2012 R2 and Windows 8
2008 R2 and Windows 7
SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
.net 4.0/4.5 Standardwert: SecurityProtocolType.Tls |. SecurityProtocolType.Tls12
SCH_USE_STRONG_CRYPTO Dieses Flag wird automatisch in .NET Framework 4.6 verwendet https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework In Win7Sp1 und .Net 3.5.1 wird TLS1.2 unterstützt
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //SecurityProtocol schließen |= (SecurityProtocolType)0xc00; //Unterstützung für 1.1 und 1.2 hinzufügen
Die Schlussfolgerung von TLS1.2 lautet:
Registry-Änderung unter .net4
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001
Dieser Artikel wurde geschrieben vonWebsite herunterladenDer gesammelte und geordnete Inhalt stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an, vielen Dank.