Commande pour créer la clé
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /t REG_DWORD /v Enabled /d 1 /f
Lien vers le fichier : cliquez ici
En aparté, vous pouvez voir les cipher suites supportées sur votre poste Windows dans la partie "Protocol Features" de l'url
https://clienttest.ssllabs.com:8443/ssltest/viewMyClient.html
Le site a l'avantage de vous dire si le protocole est faible ou non.
Sur un serveur 2008 R2 SP1 non patché, on voit tout de suite si le TLS 1.2 est supporté ou non et si les protocoles sont 'weak'
Dans la base de registre, vous pouvez voir vos cipher suites dans
Ordinateur\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002\Functions
L'ordre de préférence va de haut en bas. Donc le protocole le plus faible doit être placé en bas.
Sur mon 2008 R2 SP1 non patché cela donne
Cette clé de registre doit être manageable par GPO sous Computer Configuration > Administrative Templates > Network > SSL Configuration Settings.
Voir Configuring TLS Cipher Suite Order by using Group Policy sur le sujet.
Pour TLS 1.2 (et non TLS 1.0), pour qu'il soit activable, il faut qu'il soit installé sur le serveur.
Par exemple sur un serveur 2008 R2 SP1, il faut mettre la KB3140245 et éventuellement la KB3020369 et KB3042058.
Vous pouvez aussi avoir une appli qui utilise un vieux framework comme le 4.5. Dans ce cas vous pouvez également être amené à faire des modifications.
Sur learn.microsoft.com (que je vous invite à lire) cela dit de configurer le paramètre SchUseStrongCrypto sur DWORD:00000001. Cette valeur désactive le chiffrement de flux RC4, permet à .NET d’utiliser TLS 1.1 et TLS 1.2 et cela demande un reboot.
Le SystemDefaultTlsVersions permet à .NET d’utiliser la configuration du système d’exploitation.
Les clés à poser seraient :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001
Sur ce post cela dit qu'à partir du .NET Framework 4.7 et au dessus c'est l'OS qui choisi le meilleur protocole.
Sur https://support.microsoft.com/en-us/topic/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-winhttp-in-windows-c4bd73d2-31d7-761e-0178-11268bb10392
il est dit qu'on peut activer les protocoles désirés en posant une valeur de DefaultSecureProtocols, qui n'est pas mise par défaut, sous
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
et
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
La valeur à mettre est une addition des différentes valeurs en hexa données dans ce tableau
Ainsi si vous voulez uniquement du TLS 1.1 et du TLS 1.2
il faut ajouter en hexa 200 pour le TSL 1.1 et 800 pour le TLS 1.2 = A00
soit 2560 en décimal
On peut alors poser ces 2 clés
Pour avoir uniquement du TLS 1.2 il faut mettre 800 en hexa soit 2048 en décimal
Il faut donc poser ces clés
Pages Web
Site Web | Description |
---|---|
learn.microsoft.com | Configure TLS 1.2 on Windows clients |