page de gardeTutoriel logicielRaisons et solutions pour « Demande abandonnée : échec de la création du canal sécurisé SSL/TLS »
Raisons et solutions pour « Demande abandonnée : échec de la création du canal sécurisé SSL/TLS »

Description : Demande abandonnée : échec de la création du canal sécurisé SSL/TLS. Impossible de créer un canal sécurisé SSL/TLS. Plateformes de build : Windows Server 2012, Windows 7 Service Pack 1 (SP1) et Windows Server 2008 R2 SP1

[épisode] téléchargement du site Web Il s'agit d'un outil de téléchargement complet du site. Entrez l'URL à télécharger en un seul clic. Il est simple et facile à utiliser et comporte des tâches multithread.

Solution 1 : niveau de code

Définir le code avant HttpWebRequest

ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

Solution 2 : niveau système

Si la méthode ci-dessus ne fonctionne pas, il s'agit d'un problème au niveau du système. Mettez à jour le correctif système en fonction du système que vous utilisez actuellement.

Mise à jour pour activer TLS 1.1 et TLS 1.2 comme protocoles de sécurité par défaut dans WinHTTP sous Windows. Cette mise à jour fournit la prise en charge de Transport Layer Security (TLS) dans Windows Server 2012, Windows 7 Service Pack 1 (SP1) et Windows Server 2008 R2 SP1 1.1. et prise en charge de TLS 1.2, veuillez vous référer à la documentation officielle https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

Mettre à jour le correctif KB3140245

Activez TLS 1.1 et 1.2 sur Windows 7 au niveau du composant SChannel (avec l'une des mises à jour ci-dessous)

Méthode 1 : utilisez le package d'installation de mise à jour Microsoft pour mettre à jour MicrosoftEasyFix51044.msi
Méthode 2 : mettre à jour manuellement le registre

Copiez le code de registre suivant et importez-le dans le registre. Créez un nouveau txt, changez le suffixe txt en reg (clé de registre) et importez (faites une sauvegarde avant d'importer)

WIN7 64
[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
Windows Server
[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

Vérifiez si le système prend en charge TLS1.2, TLS1.3

PowerShell s'ouvre :

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

La première ligne de code vérifie la version TLS prise en charge. La deuxième ligne de code modifie la prise en charge de TLS.

Solution 3 : mettre à niveau le système

Aucune des deux méthodes précédentes ne fonctionnera, vous ne pouvez donc utiliser que la méthode ultime :

  • Mettez à niveau le système vers Windows 10 et Windows Server 2019 (prend en charge TLS1.2) ;
  • Mettez à niveau le système vers Windows 11 et Windows Server 2022 (prend en charge TLS1.3).

Remarque : Pour les versions TSL spécifiques prises en charge par chaque version de Windows, veuillez vous référer aux informations supplémentaires contenues dans cet article.


Autre contenu de référence

Autre contenu de référence

Des solutions existent, mais elles dépendent de la version du framework :

.NET 4.6 et supérieur. Vous n'avez pas besoin d'effectuer de travail supplémentaire pour prendre en charge TLS 1.2, il est pris en charge par défaut.

.NET 4.5. TLS 1.2 est pris en charge, mais ce n'est pas le protocole par défaut. Vous devez choisir de l'utiliser. Le code suivant définit TLS 1.2 par défaut, assurez-vous de l'exécuter avant de vous connecter à une ressource sécurisée :

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. TLS 1.2 n'est pas pris en charge, mais si .NET 4.5 (ou supérieur) est installé sur votre système, vous avez toujours la possibilité d'utiliser TLS 1.2 même si votre infrastructure d'application ne prend pas en charge TLS 1.2. Le seul problème est que SecurityProtocolType dans .NET 4.0 n'a pas d'entrée pour TLS1.2, nous devons donc utiliser la représentation numérique de cette valeur d'énumération :

ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;

.NET 3.5 ou version antérieure. TLS 1.2(*) n'est pas pris en charge et il n'existe aucune solution de contournement. Mettez à niveau votre application vers la dernière version du framework.

PS Pour le scénario 3, il existe également un hack de registre qui forcera 4.5 à utiliser TLS 1.2 par défaut sans avoir à le forcer par programme. PPS Comme Christian Pop de Microsoft le mentionne ci-dessous, un dernier correctif est disponible pour .NET 3.5 qui permet la prise en charge de TLS1.2.

Voir:

  • KB3154518 – Correctif cumulatif de fiabilité HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
  • KB3154519 – Correctif cumulatif de fiabilité HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
  • KB3154520 – Correctif cumulatif de fiabilité HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
  • KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Autre contenu de référence 2

Peut-être que la longueur de la clé de certificat fournie par le site Web est de 512 bits et que, selon les normes actuelles de l'industrie, elle devrait contenir une clé publique d'au moins 2 048 bits. La mise à jour de sécurité de Microsoft de septembre 2016 a répondu à ce problème en déclarant que si la longueur de la clé publique est inférieure à 2 048 octets (par exemple RSA 512),Windows peut annuler les connexions HTTPS

Les mises à jour installées sont

2012 R2 and Windows 8

  • KB3185331
  • KB3188743
  • KB3174644

2008 R2 and Windows 7

  • KB3185278
  • KB3185330
  • KB3192391
  • KB3175024
  • KB3172605

Autre contenu de référence trois

SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
Valeur par défaut .net 4.0/4.5 : SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 Valeur par défaut .net 4.6/4.7 : SecurityProtocolType.Tls |

https://support.microsoft.com/en-us/help/3069494/cannot-connect-to-a-server-by-using-the-servicepointmanager-or-sslstre

SCH_USE_STRONG_CRYPTO Cet indicateur sera utilisé automatiquement dans .NET Framework 4.6 https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework Dans Win7Sp1 et .Net 3.5.1, TLS1.2 est pris en charge

ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Fermer ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00 //Ajouter la prise en charge de 1.1 et 1.2;

La conclusion de TLS1.2 est la suivante :

  • L'installation de .Net3.5.1 nécessite un correctif, puis l'ajout de l'énumération TLS1.2
  • L'installation de .Net 4.0 nécessite de modifier le registre puis d'ajouter l'énumération TLS1.2
  • Après avoir installé .Net4.5, vous devez également ajouter l'énumération TLS1.2
  • Après l'installation de .Net4.6.1, TLS1.2 est pris en charge par défaut.

Modification du registre sous .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

matériaux additionnels

Cet article est écrit partéléchargement du site WebRecueilli et organisé, le contenu provient d'Internet, merci d'indiquer la source lors de la réimpression, merci.

Application logicielle : téléchargement de modèles front-end ; développement et conception ; navigation Web hors ligne. Remarque : ce logiciel n'est pas un programme de piratage et ne peut pas télécharger de données en arrière-plan !
Avis de non-responsabilité : le service est destiné à l'étude personnelle, à la recherche ou à l'appréciation, ainsi qu'à d'autres fins non commerciales ou à but non lucratif, mais en même temps, il doit être conforme aux dispositions de la loi sur le droit d'auteur et aux autres lois pertinentes, et ne doit pas enfreindre les droits légaux de ce site Web et des titulaires de droits associés. Les risques associés à l'utilisation des outils de ce site n'ont rien à voir avec ce logiciel.
Copyright © 2019-2024 Rabbit Software Tous droits réservés PIC du Guangdong n° 19111427-2
Informations sur le didacticiel Manuel de l'Utilisateur Thèmes du site Web