Windows Server 2012 R2 TLS 1.2 문제

Windows Server 2012 R2 TLS 1.2 문제

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 또는 다른 엔드포인트에 액세스하는 데 문제가 없습니다.

문제가 있는 서버에서 다음을 시도했습니다.

  1. IISCrypto를 사용하여 모든 항목 활성화 -> 다시 시작 -> 실패
  2. Microsoft 설명서에 따라 레지스트리 설정을 수동으로 변경 -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- 실패
  3. 다음 스크립트를 사용하여 TLS 1.2만 완전히 재설정하고 다시 활성화했습니다. https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- 실패

현재 저는 이 두 서버 사이에 문제가 무엇인지, 왜 하나의 Windows 서버는 작동하고 다른 서버는 작동하지 않는지 확인하고 문제를 해결하기 위해 3일을 보냈습니다.

모든 팁, 문제 해결 단계 또는 도구를 환영합니다!

스크린샷 여기에 이미지 설명을 입력하세요

  • Nuget CLR을 통해
  • 문제가 있는 서버에서 여기에 이미지 설명을 입력하세요
  • 작동하는 서버에서 여기에 이미지 설명을 입력하세요

답변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 확인을 비활성화하고 테스트하면 문제를 확인하는 데 도움이 됩니다.

관련 정보