설명: 요청이 중단되었습니다. SSL/TLS 보안 채널을 생성하지 못했습니다. SSL/TLS 보안 채널을 생성할 수 없습니다. 빌드 플랫폼: Windows Server 2012, Windows 7 서비스 팩 1(SP1) 및 Windows Server 2008 R2 SP1
[삽화] 웹사이트 다운로드 전체 사이트 다운로드 도구로, 한 번의 클릭으로 다운로드할 수 있으며 간단하고 사용하기 쉬우며 멀티 스레드 작업이 가능합니다.
HttpWebRequest 전에 코드 설정
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
위 방법으로 문제가 해결되지 않으면 시스템 수준의 문제이므로 현재 사용 중인 시스템에 맞게 시스템 패치를 업데이트하세요.
Windows에서 WinHTTP의 기본 보안 프로토콜로 TLS 1.1 및 TLS 1.2를 사용하도록 업데이트합니다. 이 업데이트는 Windows Server 2012, Windows 7 서비스 팩 1(SP1) 및 Windows Server 2008 R2 SP1 1.1에서 TLS(전송 계층 보안)에 대한 지원을 제공합니다. 및 TLS 1.2 지원은 공식 문서를 참조하세요. https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
다음 레지스트리 코드를 복사하여 레지스트리로 가져옵니다. 새 txt를 생성하고 접미사 txt를 reg(레지스트리 키)로 변경한 다음 가져오기(가져오기 전에 백업 만들기)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
PowerShell이 열립니다.
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
첫 번째 코드 줄은 지원되는 TLS 버전을 확인합니다. 두 번째 코드 줄은 TLS 지원을 수정합니다.
앞의 두 가지 방법 중 어느 것도 작동하지 않으므로 최종 방법만 사용할 수 있습니다.
참고: 각 Windows 버전에서 지원되는 특정 TSL 버전에 대해서는 이 문서의 보충 정보를 참조하세요.
솔루션이 존재하지만 프레임워크 버전에 따라 다릅니다.
.NET 4.6 이상. TLS 1.2를 지원하기 위해 추가 작업을 수행할 필요가 없으며 기본적으로 지원됩니다.
.NET 4.5. TLS 1.2가 지원되지만 기본 프로토콜은 아닙니다. 선택해서 사용하셔야 합니다. 다음 코드는 TLS 1.2를 기본값으로 설정하므로 보안 리소스에 연결하기 전에 이를 실행해야 합니다.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2는 지원되지 않지만 시스템에 .NET 4.5(또는 그 이상)가 설치된 경우 애플리케이션 프레임워크가 TLS 1.2를 지원하지 않더라도 TLS 1.2를 사용할 수 있는 옵션이 있습니다. 유일한 문제는 .NET 4.0의 SecurityProtocolType에 TLS1.2에 대한 항목이 없으므로 이 열거형 값의 숫자 표현을 사용해야 한다는 것입니다.
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 이하. TLS 1.2(*)는 지원되지 않으며 해결 방법이 없습니다. 애플리케이션을 최신 버전의 프레임워크로 업그레이드하세요.
PS 시나리오 3의 경우 프로그래밍 방식으로 강제할 필요 없이 4.5에서 TLS 1.2를 기본적으로 사용하도록 강제하는 레지스트리 해킹도 있습니다. PPS Microsoft의 Christian Pop이 아래에서 언급한 것처럼 TLS1.2 지원을 활성화하는 .NET 3.5용 최신 패치가 있습니다.
보다:
웹사이트에서 제공하는 인증서 키 길이는 512비트일 수 있으며 현재 업계 표준에 따르면 2048비트 이상의 공개 키를 포함해야 합니다. Microsoft의 2016년 9월 보안 업데이트는 공개 키 길이가 2048바이트(예: RSA 512)보다 작은 경우 다음과 같이 명시하여 이 문제에 대응했습니다.Windows에서 HTTPS 연결을 취소할 수 있음
2012 R2 and Windows 8
2008 R2 and Windows 7
SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
.net 4.0/4.5 기본값: SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 .net 4.6/4.7 기본값: SecurityProtocolType.Tls11 |
SCH_USE_STRONG_CRYPTO 이 플래그는 .NET Framework 4.6에서 자동으로 사용됩니다. https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework Win7Sp1 및 .Net 3.5.1에서는 TLS1.2가 지원됩니다.
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //ssl3 닫기 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00; //1.1 및 1.2에 대한 지원 추가
TLS1.2의 결론은 다음과 같습니다.
.net4에서 레지스트리 수정
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001
이 글의 작성자는 다음과 같습니다.웹사이트 다운로드내용은 인터넷에서 수집 및 정리되었으며, 재인쇄 시 출처를 표시해 주시기 바랍니다. 감사합니다.