TLS 1.2 in.NET cadre 4.0
J'ai un serveur Windows server 2008 R2 qui exécute une douzaine d'applications WebForms.Network Framework 4.0, et j'ai besoin de désactiver TLS 1.0 et inférieur. Quand je fais cela, toutes les connexions sécurisées échouent et j'ai été forcé de réactiver TLS 1.0. Y a-t-il un moyen d'utiliser TLS 1.2 dans un environnement de cadre 4.0? Peut-être que je suis absent quelque chose?
en outre, en raison des limites de la version CMS que nous utilisons, nous ne pouvons pas mettre à jour le cadre pour le moment.
6 réponses
le seul moyen que j'ai trouvé pour changer Ceci est directement sur le code:
au début de votre application vous définissez
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
vous devez inclure l' system.net
classe
j'ai fait cela avant d'appeler un service web parce que nous avons dû bloquer tls1 aussi.
Si vous n'êtes pas en mesure d'ajouter une propriété à system.net
bibliothèque de classe.
puis, Ajouter Global.asax fichier:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1
Et vous pouvez l'utiliser dans une fonction, sur la ligne de départ:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
Et, c'est d'être utile pour STRIPE
payment gateway, qui ne supporte que TLS 1.1, TLS 1.2.
EDIT:
Après tant de questions sur .NET 4.5 est installé sur mon serveur ou pas... voici la capture d'écran Registry
sur mon serveur de production:
je n'ai qu' .NET framework 4.0 est installé.
faire les changements suivants dans votre registre et il devrait fonctionner:
1.) .net Framework cryptographie forte clefs de registre
[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
2.) voie de communication protégée (Schannel) TLS 1.2 clefs de registre
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[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
Selon , vous aurez besoin D'installer .NET 4.5. Pour plus de détails, visitez la page web. L'essentiel est qu'après avoir installé .NET 4.5, vos applications 4.0 utiliseront le système 4.5.DLL. Vous pouvez activer TLS 1.2 de deux façons:
- Au début de l'application, ajoutez ce code:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
- Définir la clé de registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319: SchUseStrongCrypto
DWORD 1
je code en VB et j'ai pu ajouter la ligne suivante à mon Global.asax.vb fichier à l'intérieur de Application_Start
ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType) 'TLS 1.2
je rencontre le même problème avec un Framework .NET 4.0 installé sur Windows.
Et j'ai résolu ce problème en installant .NET Framework 4.6.2.
Ou vous pouvez télécharger le nouveau paquet pour avoir un essai.