Problema do TLS 1.2 do Windows Server 2012 R2

Problema do TLS 1.2 do Windows Server 2012 R2

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:

  1. Usei IISCrypto para habilitar tudo -> Reiniciar -> FALHOU
  2. 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
  3. 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!

Capturas de tela insira a descrição da imagem aqui

  • através do Nuget CLR
  • no servidor problemático insira a descrição da imagem aqui
  • No servidor que funciona insira a descrição da imagem aqui

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.

informação relacionada