Wir haben versucht, ein Problem für eine Weile zu lösen.So senden Sie mehrere (einschließlich Stammzertifizierungsstellen) -Zertifikate von .net-Client
Wir verbrauchen einen Web-Service mit Client-Zertifikaten.
Service-Besitzer gaben uns eine .p12-Datei, sie enthält das Client-Zertifikat und CA und privaten Schlüssel.
Wir können den Zertifizierungspfad vom Zertifikat selbst sehen.
Das Problem ist, wenn wir versuchen, den Web-Service über SOAP UI aufzurufen, funktioniert es. In SOAPUI haben wir die .p12-Datei als Keystore ausgewählt und das Passwort festgelegt. Es klappt.
Wenn wir versuchen, den Web-Service über unsere .net-Client-Anwendung aufrufen, es funktioniert nicht.
--Dieser ist, wie wir den Web-Service
channelFactory = new ChannelFactory<AcquisitionAutorisationService>(binding, serviceAddress);
channelFactory.Credentials.ClientCertificate.Certificate = new X509Certificate2();
channelFactory.Credentials.ClientCertificate.Certificate.Import(@"C:\cert\abc.p12", "password", X509KeyStorageFlags.DefaultKeySet);
Wenn wir die Pakete mit Wireshark überwachen nennen, sahen wir, dass, SOAPUI zwei Zertifikate sowohl Client-Zertifikat und Zertifizierungsstelle in der Anforderung sendet.
Aber .Net Client sendet nur das Client-Zertifikat nicht CA. Also Firewall des Servers erlaubt unsere Anrufe nicht.
Also meine Frage ist, wie kommen wir die CA-Root mit unserer Anfrage wie SOAP UI, in .Net senden verwaltet?
Wenn jemand irgendeine Idee über das Problem geben kann, würde ich geschätzt werden!
Noch keine Antwort? Hast du eine Lösung gefunden? Ich habe ein ähnliches Problem –