2011-02-25 2 views
5

Classic ASP 응용 프로그램에 몇 가지 .NET 페이지가 도입되었습니다. 사용자가 .NET 페이지 중 하나를 누르면 HttpWebRequest를 사용하여 ASP 세션에서 세션 변수 값을 얻으려는 요청을 세션 변수 이름과 함께 클래스 ASP 페이지에 보냅니다. 이 접근법은 다음 상황을 제외하고는 작동합니다.HttpWebRequest가 "요청이 중단되었습니다 : SSL/TLS 보안 채널을 만들지 못했습니다."

우리의 프로덕션 서버에서는 IT 담당자가 일부 레지스트리 해킹으로 약한 암호화 알고리즘을 비활성화했습니다. 우리는 128보다 128을 강요하고 싶습니다 (또는 내가 보안보다 더 많은 것을 알고있는 사람들이 말한 것입니다). 그러나 이렇게하면 다음 오류로 인해 세션 공유 요청이 중단됩니다.

The request was aborted: Could not create SSL/TLS secure channel 

this article에서 설명한대로 추적 로깅을 설정했습니다. 해당 줄은 다음과 같습니다. 나는이 정보에서 얻을 수

System.Net Information: 0 : [3892] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = 1b6acdd0:171a28, targetName = secure.xxx.com, inFlags = ReplayDetect, SequenceDetect, Confidentiality, AllocateMemory, InitManualCredValidation) 
System.Net Information: 0 : [3892] InitializeSecurityContext(In-Buffers count=2, Out-Buffer length=0, returned code=AlgorithmMismatch). 
System.Net.Sockets Verbose: 0 : [3892] Socket#18136189::Dispose() 
System.Net Error: 0 : [3892] Exception in the HttpWebRequest#51004322:: - The request was aborted: Could not create SSL/TLS secure channel. 
System.Net Error: 0 : [3892] Exception in the HttpWebRequest#51004322::GetResponse - The request was aborted: Could not create SSL/TLS secure channel. 

유일한 덩어리는 문제가 AlgorithmMismatch입니다,하지만 난 그 무엇을 할 확실하지 않다.

내가 읽은 한 가지 사실, 시도하지 않았지만 요청을하기 전에 다음 코드를 추가하는 것입니다. 그러한 간단한 변화가이 문제를 해결할 수있는 가능성이있는 것 같습니까 AlgorithmMismatch?

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 
+0

ASP 상자 및 백엔드의 OS는 무엇입니까? 어떤 알고리즘이 백엔드에서 비활성화 되었습니까? – feroze

답변

2

마침내 알아 냈습니다. 약한 암호를 비활성화하는 것 외에도 IT 담당자는 몇 가지 다른 설정을 변경했습니다. 그들은 HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ SSL 3.0 \ Client에 대해 Enabled (DWORD) 값을 0으로 설정했습니다. 이는 시스템이 SSL 요청을 생성 할 수 없음을 의미합니다. 해당 키에 대해 0에서 1로 변경하면 모든 것이 작동합니다.

관련 문제