2014-12-08 2 views
0

우리는 종종 제 3 자 웹 서비스에 HTTPS 요청을하는 웹 응용 프로그램을 보유하고 있습니다. 대부분이 문제없이 작동합니다. 그러나 때때로 응용 프로그램은 각 요청에 예외를 던지기 시작합니다 :임의 "원격 인증서가 유효성 검사 절차에 따라 유효하지 않습니다." 예외

System.Net.WebException: The underlying connection was closed: Could not establish 
         trust relationship for the SSL/TLS secure channel. ---> 
System.Security.Authentication.AuthenticationException: The remote certificate is 
         invalid according to the validation procedure. 
    at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    ...etc... 

이제 이상한 부분은 우리가 웹 응용 프로그램을 재활용하는 경우, 예외가 던져지는 중지한다는 것입니다. 어쨌든 잠시 동안.

답변

0

라이브러리가 때때로 인증서를 올바르게 검증하지 않은 방법으로 System.Net.ServicePointManager.ServerCertificateValidationCallback으로 설정하는 것으로 확인되었습니다. 무작위로 보였던 이유는 라이브러리가 사용되고 콜백이 설정 될 때까지 인증서 유효성 검사가 작동했기 때문입니다.

해결 방법은 라이브러리를 수정하는 것입니다. 그리고 일반적으로 절대적으로 생산 코드에 ServerCertificateValidationCallback을 설정하지 마십시오.

관련 문제