Il faut modifier une clé de registre pour cela
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.
En note, sur https://learn.microsoft.com/fr-fr/mem/configmgr/core/plan-design/security/enable-tls-1-2-client
il est dit que Windows 8.1, Windows Server 2012 R2, Windows 10, Windows Server 2016, et les versions ultérieures de Windows prennent en charge nativement TLS 1.2 pour les communications client-serveur sur WinHTTP. On peut forcer uniquement TLS 1.1 et TLS 1.2 pour les communications client-serveur sur WinHTTP par clé de registre.
Le détail de la valeur de ces clés est visible sur
https://support.microsoft.com/fr-fr/topic/mise-%C3%A0-jour-pour-activer-tls-1-1-et-tls-1-2-en-tant-que
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" /V "DefaultSecureProtocols" /T REG_DWORD /D 2560 /F
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" /V "DefaultSecureProtocols" /T REG_DWORD /D 2560 /F
Lien vers le fichier : cliquez ici
Pages Web
Site Web | Description |
---|---|
learn.microsoft.com | Configure TLS 1.2 on Windows clients |