Ich versuche, eine Verbindung zu Java-Webdienst mit C# -Client herzustellen. Ich habe keinen physischen Zugriff auf diesen Dienst, aber ich wurde von seinen Entwicklern darauf hingewiesen, dass ich bei meinen Anfragen ein Clientzertifikat UND eine Zwischenzertifizierungsstelle bereitstellen muss.Wie zwei SSL-Zertifikate in C# -Anfrage enthalten
Ich habe versucht, mit Service-Referenz und WebClient, aber ich nur nur Client-Zertifikat gesendet.
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.ClientCertificates.Add(m_TransportCertificate);
//m_TransportCertificate holds client certificate with key and rest of the cert chain (intermediate and root)
return request;
}
Wie zwei Client-Zertifikate in C# senden? Soweit ich weiß, ist es nicht normales Verhalten - Client sollte nur ein Zertifikat senden.
Ich kann meine App nicht machen, es zu tun - es sendet immer ein Zertifikat. Wireshark screenshot
aber es funktioniert in SoapUI (das zweite ist Zwischen CA) Wireshark screenshot
Konnte das bedeuten, dass Sie den intermediateCA auf dem Computer installieren müssen, der das Clientzertifikat verwendet? –
Der Client sollte die Zwischenprodukte automatisch senden, wenn er der Kette vertraut. Dies erfordert möglicherweise die Installation der Stammzertifizierungsstelle als vertrauenswürdige Zertifizierungsstelle auf dem Clientsystem oder die manuelle Installation einer Zwischenzertifizierungsstelle im Zwischenspeicher. – bartonjs
@bartonjs Das ist nicht der Fall. Ich habe Zertifikate im Benutzerspeicher installiert. Validierung des Serverzertifikats erfolgreich Wenn ich diese Zertifikate deinstalliere, wird kein Client-Zertifikat per Anfrage gesendet. – draen