Quando você lida com servidores Windows, especialmente o Windows Server 2016, é comum encontrar problemas relacionados a SSL/TLS, tanto para conexões de entrada (IIS, SQL Server, APIs) quanto para conexões de saída (PowerShell, scripts, atualizações). Este post detalha como configurar o sistema para liberar todos os protocolos modernos, mantendo segurança e compatibilidade.
1. Entendendo o SCHANNEL
No Windows, SCHANNEL é o módulo responsável pelos protocolos de segurança (SSL/TLS). Ele é utilizado por:
- IIS, HTTP.sys
- PowerShell, WinHTTP
- .NET e aplicações que usam SSL/TLS
- SQL Server, Exchange e serviços de sistema
As configurações ficam em:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
Alterar essas chaves afeta todos os usuários e serviços do servidor, pois está no nível de máquina (HKLM).
2. Liberando TLS 1.0 a 1.3 para Client e Server
Você pode criar um arquivo .reg que configura todas as versões TLS para entrada e saída, garantindo compatibilidade máxima.
Arquivo libera_tls.reg
Windows Registry Editor Version 5.00
; ============================
; Liberar TLS 1.0 - 1.3 para Client e Server
; ============================
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
3. Desativando SSL 2.0 e 3.0
Para segurança, SSL 2.0 e 3.0 devem permanecer desativados:
; ============================
; Desativar SSL 2.0 / 3.0
; ============================
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
4. Aplicando a configuração
- Salve o arquivo como
libera_tls.reg. - Abra Prompt de Comando como Administrador.
- Execute:
reg import libera_tls.reg
- Reinicie o servidor para garantir que todas as mudanças no SCHANNEL sejam aplicadas.
5. Testando conexões TLS/SSL
Para verificar se a configuração está funcionando:
- Saída (Client):
Invoke-WebRequest https://www.howsmyssl.com/a/check
- Entrada (Server IIS):
Verifique bindings HTTPS e use ferramentas como SSL Labs para testar protocolos disponíveis.
6. Observações finais
- Essas alterações são globais, afetam todos os usuários e serviços.
- TLS 1.0/1.1 ainda podem ser necessários para sistemas legados, mas não são recomendados para produção.
- Manter SSL 2.0/3.0 desativado é obrigatório para segurança.
- Para servidores corporativos, sempre teste em ambiente de homologação antes de aplicar em produção.
