2013-09-05 3 views
1
sslStream.AuthenticateAsServer(_certificate, false, SslProtocols.Tls | SslProtocols.Ssl3 | SslProtocols.Ssl2, true); 

위 기능을 사용하여 클라이언트를 인증 할 때 다음과 같은 오류 메시지가 나타납니다. 이는 후속 요청에 대해서만 언젠가 발생합니다. 내가 할 수있는 것에 대한 단서가 없습니다. 이전에 성공적으로 사용한 캐시의 인증서를 재사용하고 있습니다. 가능한 이유를 찾고 있습니다.지정한 데이터를 암호 해독 할 수 없습니다.

"SSPI 호출이 실패했습니다. 내부 예외를 참조하십시오."

내부 예외는 :

at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 
    at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 
    at HTTPProxyServer.ProxyServer.DoHttpProcessing(TcpClient client) in C:\Users\User\Desktop\HTTPProxy-src\HTTPProxy-stable\HTTPProxy-src\ProxyServer.cs:line 232 

답변

-1

Failure to call web service over HTTPS

위의 질문은 다른 설정에 불구하고 동일한 스택 트레이스를 갖고있는 것 같아요 "지정된 데이터의 암호를 해독 할 수 없습니다". 그 대답은 그 문제를 해결했다. 유효성 검사를 true로 설정합니다.

ServicePointManager.ServerCertificateValidationCallback = 
    delegate(object s, X509Certificate certificate, 
    X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 

업데이트 : 댓글에서 언급 한 바와 같이이 인증서 오류를 삭제하기 때문에이가 안전하지 않습니다. 하지만 dev에 대해 걱정하지 않는다면이 시도해보십시오.

+1

그 코드를 사용하면 SSL 유효성 검사 유효성을 무효화하는 모든 유효성 검사 오류를 무시합니다. –

+0

사실! 중요한 응용 프로그램에서는 SSL 오류를보고 수정해야합니다. – justcoding124

+0

Downvote는 매우 위험한 솔루션이며 질문에서 SSL 오류를 수정하거나 설명하지 않기 때문에 SSL 유효성 검사를 건너 뜁니다. 아무도 자신이하는 일을 모른 채이 솔루션을 사용해야합니다. – angularsen

관련 문제