2012-02-15 5 views
1

같은 인증 기관에서 발급 한 클라이언트 인증 인증서가 2 개 있습니다.SSL 핸드 셰이크 시간 초과

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(endPointUrl); 
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
store.Open(OpenFlags.MaxAllowed); 
X509CertificateCollection col = (X509CertificateCollection)store.Certificates.Find(X509FindType.FindBySerialNumber, certificateSerialNumber, true); 
httpWebRequest.ClientCertificates.Add(col[0]); 
httpWebRequest.Method = "POST"; 
httpWebRequest.ContentType = contentType; 
httpWebRequest.KeepAlive = false; 
httpWebRequest.Timeout = 3000; 
httpWebRequest.ContentLength = message.Length; 
httpRequestStream = httpWebRequest.GetRequestStream(); 

요청 스트림을 얻기 위해 시도 I "는 메시지와 함께 InvalidOperationException이 발생합니다 : 그 중 하나는 HTTPS의 웹 서비스에 연결하기 위해 나를 수 있습니다, 그러나 나는 다음과 같은 코드를 사용하면 다른 하나는하지 않습니다 작업 시간이 초과되었습니다. "

실패한 인증서로 연결을 시도 할 때 System.Net.trace를 사용했으며 "사용자 제공 인증서를 사용하여 세션을 다시 시작하려고 시도하기"전에 첫 번째 InitializeSecurityContext 바로 다음에 로그에 연결 시간 제한이 표시됩니다.

는 와이어 샤크는 다음을 보여

"TCP","j-link > https [SYN] Seq=0 Win=65535 Len=0 MSS=1260 SACK_PERM=1" 
"TCP","https > j-link [SYN, ACK] Seq=0 Ack=1 Win=32768 Len=0 MSS=1380" 
"TCP","j-link > https [ACK] Seq=1 Ack=1 Win=65535 Len=0" 
"TLSv1","Client Hello" 
"TLSv1","Server Hello" 
"TCP","[TCP segment of a reassembled PDU]" 
"TCP","j-link > https [ACK] Seq=78 Ack=2521 Win=65535 Len=0" 
"TLSv1","Certificate, Certificate Request, Server Hello Done" 
"TCP","j-link > https [ACK] Seq=78 Ack=3187 Win=64869 Len=0" 
"TCP","j-link > https [FIN, ACK] Seq=78 Ack=3187 Win=64869 Len=0" 
"TCP","https > j-link [ACK] Seq=3187 Ack=79 Win=32768 Len=0" 
"TLSv1","Alert (Level: Warning, Description: Close Notify)" 
"TCP","j-link > https [RST, ACK] Seq=79 Ack=3194 Win=0 Len=0" 

내가 그들을 수출하고 PEM 형식으로 변환 한 후 두 인증서를 사용하여 명령 줄에서 OpenSSL을을 사용하여 연결할 수 있습니다.

의견을 보내 주시면 대단히 감사하겠습니다.

답변

관련 문제