Estou enfrentando problemas com o TLS 1.2 no meu Windows Server 2012 R2 (servidor web de aplicativos, IIS), onde não consigo acessarhttps://api.nuget.org/v3/index.jsonvia Internet Explorer mesmo depois de ver que o TLS 1.2 foi ativado.
Tenho outro servidor com o mesmo sistema operacional e as mesmas atualizações de sistema operacional (mas sem IIS) e este servidor não tem problemas para acessar a API ou qualquer outro endpoint com TLS 1.2)
No servidor problemático, tentei o seguinte:
- Usei IISCrypto para habilitar tudo -> Reiniciar -> FALHOU
- Altere manualmente as configurações do registro seguindo a documentação da Microsoft -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- FRACASSADO
- Usei o seguinte script para redefinir completamente e reativar apenas o TLS 1.2 - https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- FRACASSADO
No momento, passei três dias tentando solucionar problemas e ver qual é o problema entre esses dois servidores, por que um servidor Windows funciona e outro não.
Quaisquer dicas, etapas de solução de problemas ou ferramentas serão bem-vindas!
Responder1
Então, depois de horas de solução de problemas, finalmente consegui resolver o problema e tornar a API acessível em nosso servidor por meio do TLS 1.2.
Temos um framework .net em nosso servidor que estava com problemas para acessar a API. A Microsoft recomenda que definamos o seguinte registro para forçar SystemDefaultTlsVersions
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[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
Responder2
Minha reputação é muito baixa, então tenho que escrever uma resposta.
A mensagem do navegador pode ser enganosa
Você deve validar se o DNS resolve o mesmo alvo e se o cliente detecta algum tipo de proxy.
Podem ser uma inspeção de pacotes por firewall, talvez com proxy transparente.
Valide qual resposta você obtém com s_client no openssl: https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server
Use o DeveloperTools no navegador para dar uma olhada em "Rede" e ver para onde sua solicitação foi enviada (talvez por proxy) e qual resposta você obteve.
Desative algumas verificações SSL/TLS no Powershell: https://stackoverflow.com/questions/34331206/ignore-ssl-warning-with-powershell-downloadstring
Valide se ambos têm a mesma configuração de rede em relação ao IPv6. Talvez um deles se conecte a outro servidor por causa disso.
EDIT: pelo menos faça a verificação do openssl para ter certeza de que você pode obter o certificado correto. Desative a verificação SSL/TLS para Powershell e os testes ajudariam a ter certeza sobre o problema.