Ili2c: Modelle auf https://405.sia.ch/models/ nicht auffindbar

Beim Durchsuchen der Modellrepositories in ili2c findet es in einem Modell mit den importierten Modellen die Modelle SIA405_Base_LV95, Base_LV95 nicht, obwohl ich bei den Modellverzeichnissen Index of /models explizit angegeben habe.

Ich erhalte ich in ili2c folgende Infomeldungen:
Info: repository <https://405.sia.ch/models/> ignored; javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;

Die selbe Meldung erscheint auch für https://models.kgk-cgc.ch/

Ich erhalte schliesslich folgende Fehlermeldung:
SIA405_Base_LV95, Base_LV95: model(s) not found
Diese Modelle gibt es aber und es funktioniert auch, wenn ich sie lokal im selben Verzeichnis wie das Modell abgespeichert habe.
Es kam auch schon vor, dass es das Modell „Unit“ nicht gefunden hat.

Woran liegt das und was kann ich tun, damit es die Modelle in den Modellrepositories korrekt findet?
Besten Dank.

Mit welchem Betriebssystem arbeitest du? Und welchen Output erhältst du, wenn du in der Konsole folgenden Befehl ausführst?

java -version

Gruss, Stefan

Hallo Stefan
Ich habe W10 und Open SDK Temurin Version 17.x. Da steht:

openjdk version "17.0.8.1" 2023-08-24
OpenJDK Runtime Environment Temurin-17.0.8.1+1 (build 17.0.8.1+1)
OpenJDK 64-Bit Server VM Temurin-17.0.8.1+1 (build 17.0.8.1+1, mixed mode, sharing)

ili2c ist Version 5.3.3

Gruss
Melanie

Kannst du mal folgenden Befehl ausführen:

keytool -list -keystore D:\path\to\java\lib\security\cacerts

Bei der Nachfrage nach Passwort kannst du einfach Enter drücken. Und den Output hier posten.

Ggf auch das hier nachmachen: Unable to connect to SSL services due to "PKIX Path Building Failed" error | Atlassian Support | Atlassian Documentation

Du musst diese SSLPoke-Klasse herunterladen und den Befehl ausführen. Eventuell ist das aber nichtssagend, weil nur Domains gehen und wenn das Repo hinter einem Proxy ist und am Ende ein anderes Zertifikat aufweist, kannst du das nicht testen. Aber wenn hier ein Fehler erscheint, ist was nicht gut. Es sind beides Let’s Encrypt-Zertifikate. Bei vsa.ch/models aber auch und das scheint zu funktionieren bei dir (?)

Bei mir auf macOS funktioniert es mit der gleichen Termurin-Version.

Hallo Melanie

Deine Fehlermeldung deutet auf ein Problem mit der TLS-Verschlüsselung hin, also wenn man Ressourcen mittels https (statt http) aufruft. Es scheinen sog. Zertifikate zu fehlen, die eine „Kette des Vertrauens“ aufbauen.
In den aktuellen Java-Versionen sollten die nötigen Hauptzertifikate jedoch immer mitgeliefert werden.

Nun sehe ich gerade @edigonzales’ Eintrag. Wir suchen in derselben Richtung. Dann warten wir mal, was du beim Ausführen von keytool für ein Resultat erhältst…

@beistehen Weisst du das: kann es auch an etwas zwischendrin liegen? Also zwischen der Java-Runtime und dem angefragten Server, z.B. ne Firewall oder so? Oder ist das auszuschliessen?

Hallo zusammen

Ich erhalte nach Auführung des Befehls folgende Meldung:
Keytool-Fehler: java.lang.Exception: Keystore-Datei ist nicht vorhanden: D:\path\to\java\lib\security\cacerts

Mit der SSLPoke-Klasse weiss ich nicht genau, wie ich das machen muss.
Zertifikate sehe ich in der Konsole mmc.exe die installierten von 405.sia.ch und interlis.ch

Auf die vsa-models kann ich auch nicht zugreifen. Das müsste ich hier aber auch nicht direkt für die SIA405-Modelle.

Wir haben einen Proxy, den habe ich aber angegeben.

D:\path\to\java\lib\security\cacerts

muss der Pfad zu deiner Java-Installation sein. Bei mir wäre das:

/Users/stefan/.sdkman/candidates/java/17.0.8-tem

Und der ganze Befehl:

keytool -list -keystore /Users/stefan/.sdkman/candidates/java/17.0.8-tem/lib/security/cacerts

Wo bei dir Java installiert ist, weiss ich nicht. Wahrscheinlich unter „c:\Programme“ oder so ähnlich.

Lade die Datei https://confluence.atlassian.com/kb/files/779355358/779355357/1/1441897666313/SSLPoke.class herunter.

Dann muss du folgenden Befehl ausführen:

java SSLPoke 405.sia.ch 443

und

java SSLPoke models.kgk-cgc.ch 443

Du musst dich aber im Verzeichnis befinden, wo die heruntergeladene SSLPoke.class-Datei liegt.

Ah und siehst du das Zertifikat des Proxies irgendwie? Ist das „self-signed“? Resp. bei der Informatik nachfragen, die den Proxy betreiben.

Und probiere den ili2c-Befehl auch mit folgendem zusätzlichen Java-Parameter:

-Dcom.sun.net.ssl.checkRevocation=false

@edigonzales
Ich habe gelesen, dass es auch „dazwischen“ liegen kann, also bei einem Proxy oder so. Da ich nie mit Proxies zu tun hatte, habe ich jedoch keine Erfahrung damit.

@mel
Bei mir ist Java unter C:\Program Files\AdoptOpenJDK\jdk-11.0.10.9-hotspot abgelegt, also würde der Befehl wie folgt lauten:

keytool -list -keystore "C:\Program Files\AdoptOpenJDK\jdk-11.0.10.9-hotspot\lib\security\cacerts"

Hallo @beistehen und @edigonzales
Herzlichen Dank für eure guten Tipps. Es klappt nun endlich :partying_face:.

Die Zertifikate im Keystore konnte ich mir als Fingerprints (SHA-256) anzeigen lassen, das war für mich aber ziemlich nichtssagend.
Der Befehl SSLPoke war nicht erfolgreich (Connection timeout). Ich habe aber aufgrund eurer Angaben nochmals intensiv unser Confluence durchsucht und bin fündig geworden. Anscheinend muss man bei uns zwei *.pem-Zertifikate in den Java Keystore importieren. Nachdem ich das gemacht habe, funktioniert es nun im Compiler.

Vielen Dank für eure Hilfe!
Gruess
Melanie

2 „Gefällt mir“