SSL-Handshake-Timeout

Ich habe 2 client-Authentifizierung-Zertifikate, die von derselben Zertifizierungsstelle. Einer von Ihnen, der es mir ermöglicht, eine Verbindung zu einem HTTPS-webservice, der andere aber nicht, wenn ich verwenden Sie ähnlichen code wie den folgenden:

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();

Wenn Sie versuchen, um die Anforderung stream, bekomme ich eine InvalidOperationException mit der Meldung "Der Vorgang hat das Zeitlimit überschritten".

Habe ich verwendet System.Net.Ablaufverfolgung, wenn Sie versuchen, eine Verbindung mit dem Zertifikat, das schlägt fehl und im log zeigt eine Zeitüberschreitung vor dem "Versuch, starten Sie die Sitzung mit dem Benutzer bereitgestellte Zertifikat" und nur nach den ersten entsprechenden Eintrag.

Wireshark zeigen Sie das folgende:

"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"

Ich kann eine Verbindung mit OpenSSL von der Befehlszeile aus mit beiden Zertifikaten, nachdem Sie Sie exportieren und die Konvertierung in das PEM-format.

Anregungen würde sehr geschätzt werden.

InformationsquelleAutor WhiteKnight | 2012-02-15

Schreibe einen Kommentar