Ich habe meinen CXF-basierten Client richtig konfiguriert, so dass er das korrekte SSL-Zertifikat für den Server findet, auf dem ich einen Web-Service betreibe:
%Vor%Aber ... Da das Zertifikat für einen Subdomain-Namen gilt, der sich von dem des Computers meines Servers (entspricht der gleichen IP-Adresse) unterscheidet, erhalte ich den folgenden Fehler:
%Vor%Also ... Da dies ein Entwicklungs- / Testsystem ist, habe ich genau wie die Nachricht vorgeschlagen (setzen Sie die CXF-Client-TLS-Konfigurationseigenschaft "disableCNCheck" auf "true"):
%Vor%Plus Ich habe den folgenden Code zur Hauptklasse meines Kunden hinzugefügt (nach dem Vorschlag in diesem Thread >):
%Vor%Aber ... Ich bekomme immer noch den gleichen Fehler:
%Vor%Irgendeine Idee warum?
Ich meine, eine der oben genannten Problemumgehungen hätte ausreichen müssen, damit der Client die Zertifikats-URL-Nichtübereinstimmung ignorieren kann, aber in meinem Fall funktioniert weder noch die Kombination .
Warum?
Ich habe CXF in mehreren Fällen verwendet, wo
%Vor%war ausreichend, um die CN-Prüfung zu deaktivieren.
Sind Sie sicher, dass Ihr Client diese Conduit-Konfiguration verwendet? Nach meinem Verständnis muss das Muster des Conduit-Namens in gewisser Weise mit dem Endpunkt-URI übereinstimmen.
Versuchen Sie, den Namen des Conduits wie folgt zu setzen, so dass jeder Endpunkt übereinstimmt und sieht, ob sich das ändert:
%Vor% Es stellt sich heraus, dass der http-conduit
-Konfigurationsname zwei Musterformate hat. Eine umfasst den Namespace und den Portnamen des Dienstes. Das andere unterstützte Format ist ein regulärer Ausdruck, der mit dem URL-Endpunkt abgeglichen wird, der in WSDL zum Erstellen des Clients angegeben wurde.
Zitieren Apache CXF User Guide bezüglich des Elements http-conduit
:
Der Name enthält den Namespace des Dienstes, den WSDL-Portnamen (als im Abschnitt WSDL: service der WSDL) und ".http-conduit" gefunden. Es folgt diese Vorlage:
{WSDL Namespace}portName.http-conduit
Hinweis: Es ist der PORT-Name, nicht der Dienstname.
..
Eine weitere Option für Das name-Attribut ist ein reg-ex-Ausdruck (z. B. " Ссылка : *"). für die ORIGINAL-URL des Endpunkts. Die Konfiguration ist abgestimmt auf Conduit Creation so die Adresse in der WSDL verwendet oder für die JAX-WS Service.create (...) Aufruf kann für den Namen verwendet werden.
Tags und Links java ssl https cxf web-services