Windows Server 2012 R2(응용 프로그램 웹 서버, IIS)에서 TLS 1.2에 문제가 있어 액세스할 수 없습니다.https://api.nuget.org/v3/index.jsonTLS 1.2가 활성화된 것을 확인한 후에도 Internet Explorer를 통해.
동일한 OS 및 동일한 OS 업데이트(IIS는 없음)를 사용하는 다른 서버가 있고 이 서버는 TLS 1.2를 사용하는 API 또는 다른 엔드포인트에 액세스하는 데 문제가 없습니다.
문제가 있는 서버에서 다음을 시도했습니다.
- IISCrypto를 사용하여 모든 항목 활성화 -> 다시 시작 -> 실패
- Microsoft 설명서에 따라 레지스트리 설정을 수동으로 변경 -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- 실패
- 다음 스크립트를 사용하여 TLS 1.2만 완전히 재설정하고 다시 활성화했습니다. https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- 실패
현재 저는 이 두 서버 사이에 문제가 무엇인지, 왜 하나의 Windows 서버는 작동하고 다른 서버는 작동하지 않는지 확인하고 문제를 해결하기 위해 3일을 보냈습니다.
모든 팁, 문제 해결 단계 또는 도구를 환영합니다!
답변1
그래서 몇 시간의 문제 해결 끝에 마침내 문제를 해결할 수 있었고 TLS 1.2를 통해 서버에서 API에 액세스할 수 있었습니다.
우리 서버에는 API 액세스에 문제가 있는 .net 프레임워크가 있습니다. Microsoft에서는 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
답변2
평판이 너무 낮아서 답변을 작성해야 합니다.
브라우저 메시지가 오해의 소지가 있을 수 있습니다.
DNS가 동일한 대상을 확인하는지 그리고 클라이언트가 모든 종류의 프록시를 감지하는지 확인해야 합니다.
투명한 프록시를 사용하여 방화벽을 통한 패킷 검사일 수 있습니다.
openssl에서 s_client로 어떤 응답을 받았는지 확인합니다. https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server
브라우저에서 DeveloperTools를 사용하여 "네트워크"를 살펴보고 요청이 전송된 위치(아마도 프록시를 통해)와 어떤 응답을 받았는지 확인하세요.
Powershell에서 일부 SSL/TLS 검사를 비활성화합니다. https://stackoverflow.com/questions/34331206/ignore-ssl-warning-with-powershell-downloadstring
IPv6과 관련하여 둘 다 동일한 네트워크 구성을 가지고 있는지 확인하십시오. 어쩌면 그 중 하나가 다른 서버에 연결될 수도 있습니다.
편집: 최소한 openssl 검사를 수행하여 올바른 인증서를 얻을 수 있는지 확인하세요. Powershell에 대한 SSL/TLS 확인을 비활성화하고 테스트하면 문제를 확인하는 데 도움이 됩니다.