Auflösen javax.net.ssl.slhandshakeException: sun.security.validator.validatexception: pkix Pfadaufbau fehlgeschlagener FJava

Java-Forum
Anonymous
 Auflösen javax.net.ssl.slhandshakeException: sun.security.validator.validatexception: pkix Pfadaufbau fehlgeschlagener F

Post by Anonymous »

Bearbeiten: < /strong> Ich habe versucht, die Frage zu formatieren und in meinem Blog eine anerkannte Antwort aufzeigbarer zu machen. < /p>
Hier ist das ursprüngliche Problem. fehlgeschlagen:

Sun.security.provider.certpath.suncertpathbuilderexception: kann gültiger Zertifizierungspfad für geforderte Ziele finden. /> fehlgeschlagen: sun.security.provider.certpath.suncertpathbuilderexception:
Es kann keinen gültigen Zertifizierungspfad für angeforderte Ziele finden. Ich habe zwei HTTPS -Webanwendungen auf verschiedenen Tomcats an verschiedenen Ports installiert, jedoch auf derselben Maschine. Sagen Sie App1 (Port 8443) und App2 (Port 443). App1 stellt eine Verbindung zu App2 her. Wenn App1 eine Verbindung zu App2 herstellt, erhalte ich den oben genannten Fehler. Ich weiß, dass dies ein sehr häufiger Fehler ist, dessen Lösungen in verschiedenen Foren und Websites auf viele Lösungen gestoßen sind. Ich habe den folgenden Eintrag in server.xml von beiden Tomcats:

Code: Select all

keystoreFile="c:/.keystore"
keystorePass="changeit"
< /code>
Auf jeder Website befindet sich der gleiche Grund, warum das von App2 angegebene Zertifikat nicht im vertrauenswürdigen Store von App1 JVM liegt. Dies scheint auch wahr zu sein, als ich versuchte, im IE -Browser dieselbe URL zu treffen. Es funktioniert (mit der Erwärmung gibt es ein [url=viewtopic.php?t=20324]Problem[/url] mit dem Sicherheitszertifikat dieser Website. Hier sage ich, dass diese Website fortgesetzt wird). Aber wenn die gleiche URL vom Java -Client (in meinem Fall) getroffen wird, erhalte ich den oben genannten Fehler. Um es in den TrustStore zu setzen, habe ich diese drei Optionen ausprobiert: < /p>
 Option 1 < /h3>
System.setProperty("javax.net.ssl.trustStore", "C:/.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
< /code>
 Option 2 < /h3>
Einstellung unten in der Umgebungsvariablen < /p>
CATALINA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
< /code>
 Option 3 < /h3>
Einstellung unten in Umgebungsvariablen < /p>
JAVA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
Ergebnis
Aber nichts hat funktioniert.
Was hat endlich funktioniert? Durch Pascal Thivent, d. H. Ausführung des Programms InstallCert. />

Code: Select all

System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") and System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

im App1 -Programm.

Code: Select all

URL url = new URL(urlStr);

URLConnection conn = url.openConnection();

if (conn instanceof HttpsURLConnection) {

HttpsURLConnection conn1 = (HttpsURLConnection) url.openConnection();

conn1.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});

reply.load(conn1.getInputStream());

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post