[linux-support] Java-Zertifikat-Fehler

Markus Wernig wernigm at lugbe.ch
Thu Jul 11 12:11:22 CEST 2019


Hallo Theo

On 11.07.2019 10:42, Theo Schmidt wrote:

> ioe: javax.net.ssl.SSLHandshakeException -
> sun.security.validator.ValidatorException: PKIX path building failed:
> sun.security.provider.certpath.SunCertPathBuilderException: unable to
> find valid certification path to requested target

Steht dort vielleicht auch, mit welcher URL sich das Programm zu
verbinden versucht?

> Im Internet finden sich sofort viele Leidensgenossen (mit anderen
> Programmen) und auch Lösungen, die aber sehr kompliziert scheinen. In
> Prune selbst kann man kaum etwas einstellen.
> 
> Weiss jemand von euch eine einfache Lösung? Andere Version von Java
> installieren? Welche? Kann man die erzwungene SSL-Verschlüsselung
> irgendwie umgehen? (Wäre auch nützlich bei nicht-funktionierenden Websites)

So wie es aussieht, verwendet OSM ein Zertifikat, das aus einer deinem
Java nicht bekannten CA stammt. Die Lösung ist, das CA-Zertifikat im
Java Truststore zu installieren, und das kann schon mal kompliziert
erscheinen, wenn man das zum ersten Mal macht.

1) Werde root mittels sudo -i

2) Finde den Java-Truststore. Normalerweise ist das das File
$JAVA_HOME/jre/lib/security/cacerts

3) Liste die dort installierten Zertifikate mittels folgndem Kommando:

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts
(Das Standard-Passwort lautet "changeit").

4) Vergleiche, ob das Root-CA-Zertifikat, das OSM verwendet, auf dieser
Liste tatsächlich fehlt (falls es schon vorhanden ist, liegt das Problem
woanders)
Falls die von gpsprune verwendete Seite "www.openstreetmap.org" ist,
sollte folgendes Kommando den Fingerprint des Root-CA-Zerts (O=Digital
Signature Trust Co., CN=DST Root CA X3) finden:

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts | grep -i
DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13

Output:
Certificate fingerprint (SHA1):
DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13

5) Falls das Zertifikat wirklich fehlt (d.h. obiges Kommando nichts
findet), kannst du es in den Truststore importieren:

6) Backup des alten Keystores machen:

cp $JAVA_HOME/jre/lib/security/cacerts $HOME/cacerts.bak

7) Root-CA-Zert herunterladen (z.B. mittels Firefox ->
https://www.openstreetmap.org -> klick auf das grüne Schloss neben der
URL -> Show connection details -> More information -> View certificate
-> Details -> "DST Root CA X3" anklicken -> Export) und lokal speichern
(z.B. /tmp/DSTRootCAX3.crt).

8) keytool -import -alias dstrootx3 -file /tmp/DSTRootCAX3.crt -keystore
$JAVA_HOME/jre/lib/security/cacerts -storepass changeit
[Return]

Trust this certificate: [Yes]

Dann mal gpgprune neu starten.

Falls das nichts hilft, melde dich doch wieder hier, dann schauen wir
weiter.

lg /markus



-- 
Markus Wernig                              🐧
Präsident Linux User Group Bern
PGP: D9203D2A4AD9FC3333DEEF9DF7ACC6208E82E4DC
---------------------------------------------
Linux User Group Bern    -   https://lugbe.ch
---------------------------------------------




More information about the Linux-support mailing list