Hoe schakel je TLS 1.2 in op Windows voor betere beveiliging?
Het hele TLS 1.2-verhaal kan soms best lastig zijn. Vooral met oudere Windows-versies, of als je ervoor wilt zorgen dat je apps en servercommunicatie veilig zijn, is het niet altijd even eenvoudig. De meeste moderne Windows-versies (zoals 10, 11, Server 2016/2019/2022) worden standaard geleverd met TLS 1.2 ingeschakeld, wat prima is. Maar als je oudere versies gebruikt, zoals Windows 7 of Server 2008, moet je wat extra werk verrichten: updates installeren, registerinstellingen aanpassen en de computer opnieuw opstarten. En in sommige gevallen lijkt Windows het ingewikkelder te maken dan nodig is, vooral als je apps zoals Outlook of PowerShell wilt beveiligen die afhankelijk zijn van deze protocollen. Deze handleiding beschrijft wat je moet doen, inclusief aanpassingen in het register en PowerShell-opdrachten, zodat je TLS 1.2 volledig kunt inschakelen en foutloos kunt laten werken.
Hoe los ik de TLS 1.2-ondersteuning in Windows 7 en Server 2008 R2 op?
Zorg ervoor dat Windows up-to-date is en installeer de benodigde updates.
- Controleer allereerst of Service Pack 1 is geïnstalleerd op Windows 7. U kunt dit controleren via het Configuratiescherm > Systeem en beveiliging > Systeem.
- Download vervolgens de update KB3140245 uit de Microsoft Update Catalog. Dit is een cruciale patch die nodig is voordat TLS 1.2 op deze oudere besturingssystemen kan worden ingeschakeld.
- Na de installatie daarvan download je MicrosoftEasyFix51044.msi. Dit bestand voegt registervermeldingen toe die TLS 1.2-ondersteuning inschakelen voor Windows 7/2008R2/2012. Soms zijn deze updates op zich niet voldoende om TLS 1.2 in alle apps volledig in te schakelen. Vandaar de onderstaande registeraanpassingen.
- Zodra alles is geïnstalleerd, start je je computer opnieuw op. Ja, een herstart is nodig om al deze registeraanpassingen van kracht te laten worden.
Bij sommige systemen lukt de update niet altijd meteen, of moet je de registeraanpassingen handmatig uitvoeren. Maar als je fouten ziet zoals Outlook dat geen verbinding kan maken of SSL-fouten in je browsers, lossen deze stappen het probleem meestal op.
TLS 1.2 handmatig inschakelen via registeraanpassingen
Dit is eigenlijk het belangrijkste onderdeel: het bewerken van het register om Windows te laten weten dat TLS 1.2 standaard moet worden gebruikt. Dit is belangrijk omdat apps en systeemcomponenten zoals WinHTTP afhankelijk zijn van deze instellingen om veilige verbindingen tot stand te brengen.
- Open de Register-editor door op te drukken Win + Ren te typen
regedit. - Navigeer naar HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\
- Maak twee nieuwe sleutels aan als deze nog niet bestaan: Client en Server.
- Voeg in beide de volgende DWORD-waarden (32-bits) toe:
- Uitgeschakeld bij standaardwaarde = 0
- Ingeschakeld = 1
Dit geeft Windows de opdracht om TLS 1.2 toe te staan, zowel als standaard (clientzijde) als voor serververbindingen.
Om WinHTTP-apps (zoals PowerShell of sommige oudere browsers) expliciet TLS 1.2 te laten gebruiken, moet u een DWORD- waarde met de naam DefaultSecureProtocols0x00000A00 toevoegen aan het register in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp. Als u een 64-bits computer gebruikt, moet u dit ook doen in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp.
De verschillende waarden voor DefaultSecureProtocols zijn een beetje verwarrend, maar hier zijn ze correct weergegeven:
0x00000A0– ondersteunt alleen SSL 3.0 en TLS 1.0 (niet wat je wilt)0x0000AA0– ondersteunt TLS 1.1 en 1.2 naast SSL 3.0 en TLS 1.00x00000A00– ondersteunt alleen TLS 1.1 en 1.20x00000800– Alleen TLS 1.2; dit is wat je nu nodig hebt.
PowerShell-script om registerwijzigingen te automatiseren
Omdat handmatige registeraanpassingen natuurlijk omslachtig en foutgevoelig kunnen zijn, heeft iemand een PowerShell-script gemaakt dat alle benodigde vermeldingen aanmaakt:
$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
Voer dit uit in een PowerShell-venster met beheerdersrechten. Na afloop is een herstart noodzakelijk. Hiermee wordt TLS 1.2 ingeschakeld voor de meeste applicaties die afhankelijk zijn van WinHTTP.
TLS 1.2 inschakelen voor. NET-toepassingen
Ja, alleen het inschakelen van registervermeldingen voor Windows is niet voldoende. Veel apps (zoals PowerShell of Outlook) zijn gebouwd op het. NET Framework en hebben daarom ook aanpassingen in het register nodig om TLS 1.2 te kunnen gebruiken. Voor oudere. NET-versies (zoals 2.0 of 3.5) moet u de volgende waarden instellen:
[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
Voor nieuwere. NET-versies (zoals 4.x) geldt hetzelfde:
[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
En voor. NET 4.6 of hoger moet u er ook voor zorgen dat de registerwaarde SchUseStrongCrypto is ingesteld op 1. Hierdoor kan PowerShell zonder fouten verbinding maken met repositories zoals PSGallery, aangezien deze nu alleen nog TLS 1.2+ accepteren.
Zonder die aanpassingen kan het verbinden met sommige beveiligde services behoorlijk vreemd verlopen, met fouten zoals “Kan niet downloaden van URI” of “Kan pakketbron niet oplossen” in PowerShell. Dat komt natuurlijk doordat PowerShell standaard lange tijd TLS 1.0 probeerde te gebruiken.
Gebruikmakend van een GUI-tool: IISCrypto
Als het bewerken van het register u te veel gedoe lijkt, is er een gratis tool genaamd IISCrypto. Het is een eenvoudige grafische interface waarmee u TLS-versies kunt in- of uitschakelen en Schannel-instellingen kunt aanpassen. Vink de gewenste protocollen aan of uit en klik op Toepassen. Let op: het wijzigt niet specifiek de instellingen voor. NET of WinHTTP, dus mogelijk moet u daarvoor nog steeds de registeraanpassingen uitvoeren.
Samenvatting
TLS 1.2 werkend krijgen op Windows – vooral oudere versies – kan een behoorlijke uitdaging zijn. Maar met de juiste updates, aanpassingen in het register en eventueel een snel script is het meestal wel te doen. Het is de moeite waard, zeker als je wilt dat je apps en servers veilig en compatibel blijven met moderne protocollen. Houd er wel rekening mee dat na het wijzigen van registerinstellingen een herstart meestal nodig is. En voor sommige toepassingen, zoals PowerShell, zorgt het instellen van de registeropties ervoor dat de applicaties TLS 1.2 ondersteunen, waardoor die vervelende verbindingsfouten worden voorkomen.
Samenvatting
- Zorg ervoor dat uw Windows-versie up-to-date is, met name KB3140245 voor oudere besturingssystemen.
- Schakel TLS 1.2 handmatig in via registerinstellingen in Schannel.
- Stel DefaultSecureProtocols in voor WinHTTP-apps om TLS 1.2 af te dwingen.
- Gebruik PowerShell-scripts voor automatisering indien nodig.
- Configureer. NET Framework voor het gebruik van TLS 1.2 door registervermeldingen te bewerken.
- Optioneel: Gebruik IISCrypto voor een grafische gebruikersinterface.