Κατάλογος άρθρων
  1. 1. Λύση πρώτη:
  2. 2. Λύση 2
    1. 2.1. ενημέρωση κώδικα
    2. 2.2. Ορίστε την προεπιλεγμένη τιμή
    3. 2.3. Σύστημα επαλήθευσης
  3. 3. Λύση τρίτη
  4. 4. Άλλο περιεχόμενο αναφοράς

Περιγραφή: Το αίτημα ματαιώθηκε: Απέτυχε η δημιουργία ασφαλούς καναλιού SSL/TLS. Δεν ήταν δυνατή η δημιουργία ασφαλούς καναλιού SSL/TLS.

Δημιουργία πλατφορμών: Windows Server 2012, Windows 7 Service Pack 1 (SP1) και Windows Server 2008 R2 SP1

Λύση πρώτη:

Ορίστε τον κωδικό πριν από το HttpWebRequest

ServicePointManager.Expect100Continue = true;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

Λύση 2

  • Εάν η παραπάνω μέθοδος δεν λειτουργεί, πρόκειται για πρόβλημα σε επίπεδο συστήματος. Ενημερώστε την ενημερωμένη έκδοση κώδικα συστήματος σύμφωνα με το σύστημα που χρησιμοποιείτε αυτήν τη στιγμή.

Ενημερωμένη έκδοση για ενεργοποίηση των TLS 1.1 και TLS 1.2 ως τα προεπιλεγμένα πρωτόκολλα ασφαλείας στο WinHTTP στα Windows, αυτή η ενημέρωση παρέχει υποστήριξη για Transport Layer Security (TLS) στον Windows Server 2012, Windows 7 Service Pack 1 (SP1) και Windows Server 2008 R2 SP1 1.1 και υποστήριξη TLS 1.2, ανατρέξτε στην επίσημη τεκμηρίωσηhttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

ενημέρωση κώδικα

Ορίστε την προεπιλεγμένη τιμή

  • Ενεργοποιήστε τα TLS 1.1 και 1.2 στα Windows 7 σε επίπεδο στοιχείου SChannel (υιοθετήστε μία από τις ενημερώσεις 2.1 ή 2.2 παρακάτω)

2.1 Η Microsoft εγκαθιστά και ενημερώνει το μητρώο:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi

2.2 Ενημερώστε το μητρώο με μη αυτόματο τρόπο, αντιγράψτε τον παρακάτω κωδικό μητρώου και εισαγάγετε το στο μητρώο. Δημιουργήστε ένα νέο txt, αλλάξτε το επίθημα txt σε reg (κλειδί μητρώου) και εισαγάγετε (δημιουργήστε αντίγραφο ασφαλείας πριν την εισαγωγή)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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

Σύστημα επαλήθευσης

  • Επαληθεύστε εάν το σύστημα υποστηρίζει TLS1.2, TLS1.3

Το PowerShell ανοίγει:

Net.ServicePointManager::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12

Λύση τρίτη

  • Καμία από τις δύο προηγούμενες μεθόδους δεν θα λειτουργήσει. Μπορείτε να χρησιμοποιήσετε μόνο την τελική μέθοδο για να αναβαθμίσετε το σύστημα στα Windows 10.

Άλλο περιεχόμενο αναφοράς

https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/

Λύσεις υπάρχουν, αλλά εξαρτώνται από την έκδοση πλαισίου:

.NET 4.6 και άνω. Δεν χρειάζεται να κάνετε καμία επιπλέον εργασία για να υποστηρίξετε το TLS 1.2, υποστηρίζεται από προεπιλογή.

.NET 4.5. Το TLS 1.2 υποστηρίζεται, αλλά δεν είναι το προεπιλεγμένο πρωτόκολλο. Πρέπει να επιλέξετε να το χρησιμοποιήσετε. Ο παρακάτω κώδικας ορίζει το TLS 1.2 ως προεπιλογή, φροντίστε να το εκτελέσετε πριν συνδεθείτε σε έναν ασφαλή πόρο:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. Το TLS 1.2 δεν υποστηρίζεται, αλλά εάν το .NET 4.5 (ή νεότερο) είναι εγκατεστημένο στο σύστημά σας, εξακολουθείτε να έχετε την επιλογή να χρησιμοποιήσετε το TLS 1.2 ακόμα κι αν το πλαίσιο εφαρμογής σας δεν υποστηρίζει το TLS 1.2. Το μόνο πρόβλημα είναι ότι το SecurityProtocolType στο .NET 4.0 δεν έχει καταχώρηση για TLS1.2, επομένως πρέπει να χρησιμοποιήσουμε την αριθμητική αναπαράσταση αυτής της τιμής enum:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;

.NET 3.5 ή χαμηλότερο. Το TLS 1.2(*) δεν υποστηρίζεται και δεν υπάρχει λύση. Αναβαθμίστε την εφαρμογή σας στην πιο πρόσφατη έκδοση του πλαισίου.

ΥΓ Για το σενάριο 3, υπάρχει επίσης ένα hack μητρώου που θα αναγκάσει το 4.5 να χρησιμοποιήσει το TLS 1.2 από προεπιλογή χωρίς να χρειάζεται να το επιβάλει μέσω προγραμματισμού.
PPS Όπως αναφέρει ο Christian Pop της Microsoft παρακάτω, υπάρχει μια τελευταία διαθέσιμη ενημέρωση κώδικα για το .NET 3.5 που επιτρέπει την υποστήριξη TLS1.2.
Βλέπω:
KB3154518 – Συνάθροιση αξιοπιστίας HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – Συνάθροιση αξιοπιστίας HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – Συνάθροιση αξιοπιστίας HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Κατάλογος άρθρων
  1. 1. Λύση πρώτη:
  2. 2. Λύση 2
    1. 2.1. ενημέρωση κώδικα
    2. 2.2. Ορίστε την προεπιλεγμένη τιμή
    3. 2.3. Σύστημα επαλήθευσης
  3. 3. Λύση τρίτη
  4. 4. Άλλο περιεχόμενο αναφοράς