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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke an Shawn ' s Frage, der mir fix die timeout-problem wurde durch die Verbindung der Einnahme von über 60 Sekunden fehl.
Bekam ich dann eine "Die Anforderung wurde abgebrochen: es Konnte keine sichere SSL/TLS-Kanal." - Fehler, die wurde gelöst, indem Sie die Die Windows HTTP-Dienste Zertifikat-Konfigurationstool und Informationen, die ich erhalten hier.
InformationsquelleAutor WhiteKnight