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.

46
demandé sur betagreg 2015-11-17 19:19:05

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.

23
répondu Mike 2018-04-18 07:30:20

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é.

registry

61
répondu Vikrant 2018-06-06 08:09:18

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
37
répondu Aditya Landge 2018-03-19 09:15:02

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: SchUseStrongCryptoDWORD 1
21
répondu BrainStorm.exe 2017-12-07 07:47:31

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
1
répondu user2721607 2018-08-25 15:27:04

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.

0
répondu Krain Chen 2018-03-20 05:55:12