- Je besoin pour utiliser le protocole TLS 1.2 pour se connecter à partir de mon .NET web service à l'autre qui va de la force de TLS 1.2. J'ai trouvé une ressource qui dit .NET de 4,6 utilise le protocole TLS 1.2 par défaut, de sorte que sonnait comme la solution la plus simple. J'ai mis à jour le .NET framework sur le serveur et redémarré. Dans IIS, j'ai essayé de faire un pool d'applications à l'aide .NET de 4,6 mais 4.0 était la seule option. Ensuite, j'ai trouvé quelque chose qui a déclaré qu'il allait encore dire 4.0, car 4.6 est une "en place" mise à jour .NET 4.0. J'ai donc pensé que j'avais peut-être fait. Toutefois, sur une page d'erreur que j'ai eu pour des raisons, dit-il Microsoft .NET Framework Version:4.0.30319
il semble donc que je n'ai pas mis à jour avec succès. Tous les pointeurs sur la façon de veiller à ce que mon pool d'applications est à l'aide .NET de 4,6, ou, plus généralement, comment activer TLS 1.2?
Réponses
Trop de publicités?En fait nous sommes juste mis à niveau .NET web service à 4,6 pour permettre TLS 1.2.
Ce Artem est à dire ont été les premières mesures que nous avons fait. Nous avons recompilé le cadre du service web à 4,6 et nous avons essayé de changer la clé de registre pour activer TLS 1.2, bien que cela n'a pas fonctionné: la connexion a été encore dans TLS 1.0. Aussi, nous ne voulons pas interdire le protocole SSL 3.0, TLS 1.0 ou TLS 1.1 sur la machine: d'autres services web pourrait être de l'utiliser; nous rolledback nos modifications sur le registre.
Nous avons effectivement changé le Web.Les fichiers de configuration de dire IIS: "hé, exécutez m'en 4,6 s'il vous plaît".
Voici les modifications que nous avons ajouté dans le web.config + recompilation dans .NET 4.6:
<system.web>
<compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->
<!--Added this httpRuntime -->
<httpRuntime targetFramework="4.6" />
<authentication mode="Windows"/>
<pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>
Et la connexion changé de TLS 1.2, parce que ce dernier est maintenant en cours d'exécution du service web 4.6 (dit explicitement) et 4.6 est à l'aide de TLS 1.2 par défaut.
Ajoutez le code suivant avant d'instancier votre client de service Web:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Ou pour une compatibilité ascendante avec TLS 1.1 et versions antérieures:
System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
Si vous utilisez .Net avant la version 4.5, Tls12 ne figure pas dans l'énumération, donc l'état est explicitement mentionné ici.
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Trois étapes nécessaires:
Marquer explicitement SSL2.0, TLS1.0, TLS1.1 forbidden sur votre machine serveur, en ajoutant
Enabled=0
etDisabledByDefault=1
de votre base de registre (le chemin d'accès complet est -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
). Voir l'écran pour plus de détailsActiver explicitement
TLS1.2
en suivant les étapes 1. Suffit d'utiliserEnabled=1
etDisabledByDefault=0
respectivement.
REMARQUE: vérifiez que la version du serveur: Windows Server 2003
ne prend pas en charge l' TLS 1.2
protocole
-
Activer
TLS1.2
seulement sur l'app niveau, à l'instar de @John Wu suggéré ci-dessus.System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Espérons que ce guide vous aide.
Mise à JOUR Comme @Subbu mentionné: le guide Officiel
Pour moi ci-dessous travaillé:
Étape 1: Téléchargé et installé le programme d'installation web exe à partir d' https://www.microsoft.com/en-us/download/details.aspx?id=48137 sur le serveur d'applications. Redémarré le serveur d'application après l'installation a été achevée.
Étape 2: ajouter ci-dessous les changements dans le web.config
<system.web>
<compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->
<!--Added this httpRuntime -->
<httpRuntime targetFramework="4.6" />
</system.web>
Étape 3: Après avoir terminé l'étape 1 et 2, il a donné une erreur, "WebForms UnobtrusiveValidationMode nécessite un ScriptResourceMapping pour 'jquery'. S'il vous plaît ajouter un ScriptResourceMapping nommé jquery(sensible à la casse)" et pour résoudre cette erreur, j'ai ajouté ci-dessous clés dans appsettings dans mon web.config fichier
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>