Windows 7에서 업그레이드한 후 IIS 10에서 https 프로토콜이 작동하지 않습니다.

Windows 7에서 업그레이드한 후 IIS 10에서 https 프로토콜이 작동하지 않습니다.

IIS 7.5에서 실행되는 ASP 응용 프로그램이 있습니다. Windows 7의 EoL로 인해 Windows 10과 IIS 10으로 업그레이드해야 했습니다. 이제 ASP 사이트 또는 https를 사용하는 경우를 제외하고 다른 웹 사이트가 작동한다는 점을 제외하면 모든 것이 제자리에 있는 것처럼 보였습니다. 지금까지 Firefox는 PR_CONNECT_RESET_ERROR를 제공하고 Chrome은 ERR_SSL_PROTOCOL_ERROR를 반환하며 Edge는 흠 이 페이지에 연결할 수 없습니다를 반환합니다.

일부 답변은 ARR Rewrite 모듈을 지적합니다. 이 모듈은 제거한 후 재부팅한 후 업데이트된 버전을 다시 설치해도 동일한 결과가 나타납니다. 결국 제거하고(더 이상 필요하지 않음) 재부팅했습니다. Windows 기능 재부팅을 제거하고 IIS를 다시 설치하고 재부팅하는 IIS를 다시 설치합니다. 모든 인증서를 제거하고 자체 서명된 인증서를 생성하면 동일한 문제가 발생합니다. 마지막으로 해당 웹 서버에서 모든 웹 사이트를 삭제하고 기본 디렉터리(html 파일과 두 개의 이미지가 포함된 wwwroot)에 새 웹 사이트를 만들었습니다. 이 디렉터리는 http 프로토콜이 사용되는 한 표시되지만 https는 표시되지 않습니다(동일 오류). 나는 팔로우했다이 가이드IIS 7의 경우에는 사랑이 없습니다. 또한 다시 설치한 후 IUSR에 대한 폴더에 대한 권한을 취소하고 다시 부여합니다. 마지막으로 바이러스 백신에서 SSL 필터링을 비활성화했지만 차이는 없습니다.

원래 사용된 인증서는 openssl을 사용하여 사내에서 수행되어 회사 전체 루트 인증서, 중간 인증서 및 업그레이드 전까지 잘 작동했던 시스템 인증서를 생성했습니다. 현재 제가 말했듯이 자체 서명된 브라우저를 사용하더라도 가장 간단한 콘텐츠를 제공하기 위해 사용된 브라우저를 사용하면 작동하지 않습니다. 무엇을 확인해야 할지 아이디어가 부족했습니다.

이것은 IIS에서 얻은 추적입니다.

 #Software: Microsoft Internet Information Services 10.0
 #Version: 1.0
 #Date: 2020-01-20 20:12:22
 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
 2020-01-20 20:12:22 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 200 0 0 2687
 2020-01-20 20:12:22 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 http://devmachine.company.local/ 200 0 0 12
 2020-01-20 20:12:22 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 404 0 2 5
 #Software: Microsoft Internet Information Services 10.0
 #Version: 1.0
 #Date: 2020-01-20 12:26:37
 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
 2020-01-20 20:12:22 ::1 GET / - 443 - ::1 Microsoft+Windows+Network+Diagnostics - 200 0 0 996
 2020-01-20 20:12:22 192.168.1.100 HEAD / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 19
 2020-01-20 20:27:38 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 8
 2020-01-20 20:27:38 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 200 0 0 50
 2020-01-20 20:27:38 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 404 0 2 19

보시다시피 http만 작동했지만(시계에 문제가 있는지 확인하기 위해 또 다른 시도에서 시간을 변경했지만 그렇지 않았습니다. Chrome에서 http에 대해 불평했기 때문에 시계는 괜찮았습니다) https.

답변1

나는 스스로 답을 얻었다. 문제는 수년에 걸쳐 암호가 변경되었지만 Windows 2012 및 2016 서버에 대해서만 적절한 업데이트가 있었지만 이전 버전에는 해당되지 않았으며 Windows 10에는 이미 해당 항목이 있었고 이에 따라 업데이트되었다는 것입니다. 결과적으로, 업그레이드 후 SSL이 IIS에서 처리되는 방식에 영향을 미치는 존재하지 않는 일부 레지스트리 항목이 있습니다. 이런 경우인지 테스트하려면 Firefox에서 새 탭을 열고 about:config를 입력하고 security.tls.version.max를 검색하여 3으로 설정하고 저장하세요. 웹 사이트로 이동하려고 하면 작동하거나 적어도 인증서가 올바르지 않다는 일반적인 경고가 표시됩니다. 그렇다면 Firefox에서 변경 사항을 취소하고 설명된 해결 방법을 수행하십시오.여기; 어쨌든 해당 페이지가 잊혀지거나 삭제될 경우를 대비해 설명하겠습니다.

이전에 웹 서버에서 강력한 보안에 대한 변경 사항 중 일부를 이미 수행했는지에 따라 생성되거나 변경되어야 하는 다음 항목의 레지스트리를 업데이트하면 전체 문제가 해결됩니다.

WinHTTP 업데이트

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
  DefaultSecureProtocols = (DWORD): 0xAA0
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
  DefaultSecureProtocols = (DWORD): 0xAA0

아직 수행하지 않은 경우 TLS 1.2를 활성화하십시오.

[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

응용 프로그램이 64비트 OS에서 32비트인 경우 다음도 수정하세요.

[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

아직 TLS 1.2를 활성화하지 않은 경우 SCHANNEL 프로토콜을 구성하세요.

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
  "DisabledByDefault" = dword:00000000
  "Enabled" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
  "DisabledByDefault" = dword:00000000
  "Enabled" = dword:0xffffffff

레거시 애플리케이션/브라우저에 대해 TLS 1.1을 지원하려면 TLS 1.1이 TLS 1.2와 동일해야 합니다. SSL과 같은 약한 암호를 비활성화하는 것이 좋으며 TLS 1.0을 사용할 수 있는 경우(클라이언트 및 서버에 대해 DisableByDefault = dword:00000001 Enabled=00000001. 해당 항목은 TLS 1.1 및 TLS 1.2와 동일한 수준에 있는 TLS 1.0에 위치함) 그리고 컴퓨터를 다시 시작하세요.

모든 것이 순조롭게 진행되면 애플리케이션이 다시 작동하거나 최소한 자체 서명된 인증서로 인한 보안 위험에 대한 일반적인 메시지가 표시됩니다. 이 방법이 귀하에게 도움이 되기를 바랍니다. 문제를 해결하는 데 도움이 된다면 투표해 주시기 바랍니다. 미리 감사드립니다.

참고: 여기에 제공된 스크립트를 사용하여 적절한 regedit 값을 설정/지울 수 있습니다.https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12

답변2

이 기사에 대해 많은 검색을 한 후에 포스팅의 필요성을 느꼈습니다. 본질적으로 자리에 있습니다.

약간의 문제가 있었습니다. 그래서 제안합니다.

  1. MS 사이트 제안 하단에 있는 스크립트를 사용하세요. 관리자 권한으로 실행해야 합니다.
  2. 스크립트가 작동하지 않으면 생성한 키를 모두 삭제한 다음 스크립트를 다시 시도하세요.

마지막으로 Server 2019로 업데이트하는 데 문제가 발생했고 IIS 서버가 SQL 2012 서버에 연결되어 있는 경우 SP4로 패치되었는지 확인하세요. :)

관련 정보