Comment activer TLS 1.2 sous Windows pour une meilleure sécurité
L’utilisation de TLS 1.2 peut parfois s’avérer fastidieuse. Si vous utilisez d’anciennes versions de Windows ou si vous souhaitez sécuriser les communications de vos applications et de votre serveur, la procédure n’est pas toujours simple. La plupart des versions récentes de Windows (comme Windows 10, 11 et Server 2016/2019/2022) intègrent TLS 1.2 par défaut, ce qui est une bonne chose. Cependant, si vous utilisez des versions plus anciennes comme Windows 7 ou Server 2008, vous devrez effectuer quelques manipulations supplémentaires : installer des mises à jour, modifier les paramètres du registre, puis redémarrer. Sur certaines configurations, Windows semble même compliquer les choses inutilement, notamment pour sécuriser des applications comme Outlook ou PowerShell qui utilisent ces protocoles. Ce guide vous expliquera la marche à suivre, y compris les modifications du registre et les commandes PowerShell, pour activer et faire fonctionner TLS 1.2 sans erreur.
Comment résoudre les problèmes de prise en charge de TLS 1.2 sous Windows 7 et Server 2008 R2
Assurez-vous que Windows est à jour et installez les mises à jour nécessaires.
- Tout d’abord, vérifiez que le Service Pack 1 est installé sur Windows 7. Vous pouvez le vérifier en allant dans Panneau de configuration > Système et sécurité > Système.
- Téléchargez ensuite la mise à jour KB3140245 depuis le Catalogue Microsoft Update. Il s’agit d’un correctif essentiel nécessaire avant d’activer TLS 1.2 sur ces anciens systèmes d’exploitation.
- Après l’installation, téléchargez le fichier MicrosoftEasyFix51044.msi. Ce fichier ajoute des entrées de registre qui activent la prise en charge de TLS 1.2 pour Windows 7/2008 R2/2012. Parfois, ces mises à jour ne suffisent pas à activer complètement TLS 1.2 dans toutes les applications ; d’où la nécessité des modifications de registre décrites ci-dessous.
- Une fois l’installation terminée, redémarrez votre ordinateur. En effet, un redémarrage est nécessaire pour que toutes ces modifications du registre soient prises en compte.
Sur certains systèmes, la mise à jour ne s’installe pas toujours du premier coup, ou il peut être nécessaire de modifier manuellement le registre. Toutefois, si vous rencontrez des erreurs telles que l’impossibilité de se connecter à Outlook ou des erreurs SSL dans vos navigateurs, ces étapes devraient généralement résoudre le problème.
Activer manuellement TLS 1.2 via des modifications du registre
C’est en quelque sorte l’élément central : modifier le registre pour indiquer à Windows d’utiliser TLS 1.2 par défaut. C’est important car les applications et les composants système comme WinHTTP dépendent de ces paramètres pour établir des connexions sécurisées.
- Ouvrez l’Éditeur du Registre en appuyant sur la Win + Rtouche correspondante et en tapant
regedit:. - Accédez à HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\
- Créez deux nouvelles clés si elles n’existent pas : Client et Serveur.
- Dans les deux, ajoutez ces valeurs DWORD (32 bits) :
- DésactivéParDéfaut = 0
- Activé = 1
Cela indique à Windows d’autoriser TLS 1.2 à la fois comme protocole par défaut (côté client) et pour les connexions serveur.
Pour que les applications WinHTTP (comme PowerShell ou certains navigateurs plus anciens) utilisent explicitement TLS 1.2, vous devez ajouter une valeur DWORD dans le registre, nommée DefaultSecureProtocols, 0x00000A00 à l’ emplacement suivant : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp. Si vous utilisez un système 64 bits, répétez également cette opération à l’emplacement suivant : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp.
Les différentes valeurs de DefaultSecureProtocols sont un peu déroutantes, mais les voici :
0x00000A0– n’autorise que SSL 3.0 et TLS 1.0 (ce qui ne vous convient pas).0x0000AA0– prend en charge TLS 1.1 et 1.2 en plus de SSL 3.0 et TLS 1.00x00000A00– autorise uniquement TLS 1.1 et 1.20x00000800– TLS 1.2 uniquement ; c’est ce qu’il vous faut actuellement.
Script PowerShell pour automatiser les modifications du registre
Car, bien sûr, les modifications manuelles du registre peuvent être fastidieuses et sujettes aux erreurs de frappe. Quelqu’un a créé un script PowerShell qui crée toutes les entrées nécessaires :
$reg32bWinHttp = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" $reg64bWinHttp = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" $regWinHttpDefault = "DefaultSecureProtocols" $regWinHttpValue = "0x00000800" $regTLS12Client = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" $regTLS12Server = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" $regTLSDefault = "DisabledByDefault" $regTLSValue = "0x00000000" $regTLSEnabled = "Enabled" $regTLSEnableValue = "0x00000001" # Create registry keys and set values New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Force New-Item -Path $regTLS12Client -Force New-Item -Path $regTLS12Server -Force New-ItemProperty -Path $regTLS12Client -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD New-ItemProperty -Path $regTLS12Client -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD New-ItemProperty -Path $regTLS12Server -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD New-ItemProperty -Path $regTLS12Server -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD
Exécutez cette commande dans une fenêtre PowerShell avec privilèges d’administrateur ; un redémarrage est ensuite indispensable. Cela active le protocole TLS 1.2 pour la plupart des applications utilisant WinHTTP.
Activation de TLS 1.2 pour les applications. NET
Oui, activer le registre Windows ne suffit pas. De nombreuses applications (comme PowerShell ou Outlook) sont basées sur. NET Framework et nécessitent également des modifications du registre pour utiliser TLS 1.2. Pour les versions plus anciennes de. NET (comme 2.0 ou 3.5), vous devrez définir les valeurs suivantes :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001
Pour les versions plus récentes de. NET (comme la version 4.x), procédez de la même manière :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001
Pour. NET 4.6 ou version ultérieure, assurez-vous également que l’entrée de registre SchUseStrongCrypto est définie sur 1. Cela permet à PowerShell de se connecter aux référentiels tels que PSGallery sans erreur, car ceux-ci n’acceptent désormais que TLS 1.2 et versions ultérieures.
Sans ces ajustements, la connexion à certains services sécurisés peut s’avérer très problématique, avec des erreurs telles que « Impossible de télécharger à partir de l’URI » ou « Impossible de résoudre la source du package » dans PowerShell. En effet, PowerShell a longtemps utilisé par défaut le protocole TLS 1.0.
Utilisation d’un outil graphique : IISCrypto
Si la modification du registre vous semble trop fastidieuse, il existe un outil gratuit appelé IISCrypto. Son interface graphique simple permet d’activer ou de désactiver les versions TLS et de modifier les paramètres Schannel. Il suffit de cocher ou de décocher les protocoles souhaités, puis de cliquer sur Appliquer. Remarque : cet outil ne modifie pas les paramètres spécifiques à. NET ou WinHTTP ; vous devrez peut-être tout de même effectuer les modifications du registre pour ces protocoles.
Conclure
Configurer TLS 1.2 sous Windows, surtout sur les anciennes versions, peut s’avérer complexe. Cependant, avec les mises à jour appropriées, quelques modifications du registre et éventuellement un petit script, c’est généralement faisable. L’effort en vaut la peine, notamment si vous souhaitez que vos applications et serveurs restent sécurisés et compatibles avec les protocoles modernes. N’oubliez pas qu’après toute modification du registre, un redémarrage est généralement nécessaire. De plus, pour certains programmes, comme PowerShell, la configuration des options du registre permet de forcer l’utilisation de TLS 1.2 et d’éviter ainsi les erreurs de connexion.
Résumé
- Assurez-vous que votre version de Windows est à jour, notamment la mise à jour KB3140245 pour les systèmes d’exploitation plus anciens.
- Activez manuellement TLS 1.2 via les clés de registre dans Schannel
- Configurez les protocoles de sécurité par défaut pour les applications WinHTTP afin de forcer l’utilisation de TLS 1.2.
- Utilisez des scripts PowerShell pour l’automatisation si nécessaire.
- Configurez. NET Framework pour utiliser TLS 1.2 en modifiant les entrées du registre.
- Facultatif : utiliser IISCrypto pour une approche basée sur une interface graphique