Kursaktualisierung Währungen Linux

Hallo,
nach der Aktualisierung von 0.74.0 auf 0.74.1 über die Funktion in PP werden die Währungskurse nicht mehr aktualisiert, bzw. die vorhandenen nicht mehr angezeigt. Das Aktualisierungsdatum von EUR/USD steht auf dem 18. Dezember 2015.
Hat jemand eine Ahnung, wo der Haken liegt? Unter Win10 und Win11 gibt es das Problem nicht.
Vielen Dank
Jörn

Was steht in deinem Fehlerlog?

Vielen Dank für die schnelle Reaktion.
Anbei der Log vom letzten Aufruf.

Beste Grüße Jörn
pp-error-log.pdf (40,3 KB)

Wie siehst denn mit dem Fehlerlog von PP aus?

Hallo,

hatte ich als pdf beigelegt. Hier noch einmal.
pp-error-log.pdf (40,3 KB)

Entschuldige bitte, die Datei ist nur allgemein abgelegt.

Gruß Jörn
pp-error-log.pdf (40,3 KB)

Ist das der Inhalt des Fehlerprotokolls von PP? Hilfe → Fehlerprotokoll.

Darin ist kein relevanter Fehler zu sehen.

Hallo und vielen Dank für das Feedback.
Wie gesagt, habe ich PP auf Linux und WIN11 zu laufen. Über eine VM greifen beide auch auf den selben Datenbestand zu, aber nicht gleichzeitig. Ich habe einmal die Fehlerprotokolle Linux und WIN11 beigelegt. Hier nur die Ausgaben über die Oberfläche. Nach meiner Meinung kann mein Linux die Seite für die EZB nicht korrekt auflösen.
Leider wird die EZB Seite wohl nur einmal am Tag aufgerufen. :rage:


Gruß Jörn

Wie kommst du zu dieser „Meinung“ (eher Vermutung)? Wenn die EZB-Seite für PP nicht erreichbar ist, musst du das jedenfalls ändern, wenn du Devisenkurse haben willst.

nslookup www.ecb.europa.eu

Meinungen sind schwierig, Fakten sind besser.
Was ist das denn für ein Linux. Nach den Zeilen in Deinem error-log würde ich auf Mint tippen.

Hallo,
vielen Dank für die Reaktion. Die Seite der EZB kann ich ohne Probleme auflösen. Ja, das System ist Mint LMDE6. Vielleicht hilft ja mein aktueller Log ein klein wenig weiter.

Besten Dank Jörn
250307-PP ErrorLog.pdf (27,8 KB)

Nein. Habe ich auch vor drei Tagen schon gesagt.

Über den Browser geht es, aber mit PP, also eigentlich mit Java nicht?
Ich habe eine ganz kleine Idee.
grafik
Durch Klick auf das Vorhängeschlosssymbol gelangt man zum Zertifikat.


Das Zertifikat von “www.ecb.europa.eu” läuft unter dem Rootzertifikat “SSL.com TLS ECC Root CA 2022”. Wenn man nach dem Rootzert googelt findet man https://bugs.openjdk.org/browse/JDK-8341057

Hast Du in letzter Zeit Updates gemacht?
Falls nein, mal machen.
Falls ja, dann hat was nicht geklappt → Vorschlag (bei geschlossenem PP):

sudo apt install ca-certificates-java openjdk-21-jre
oder
sudo apt reinstall ca-certificates-java openjdk-21-jre

Falls das auch nicht hilft, neu Nachdenken…

1 Like

Lieben Dank für die Anregungen.
Bei Versuch, die Idee umzusetzen, bin ich über ein Problem gestolpert. Mein Mint ist original mit OpenJDK-17 gekommen. Damit PP läuft habe ich händisch OpenJDK-21 nachinstalliert. Nach Abfrage der primären Version wird auch die 21 genannt aber ich kann die Zertifikate nicht aktualisieren, da die Version nicht im Paketmanager hinterlegt ist. Ich schlafe mal eine Nacht drüber und vieleicht habe ich ja eine Idee.

Gruß Jörn

Erstmal gucken was da ist:

dpkg -l | grep ca-cert

und sich die Ausgabe merken. Dann

sudo dpkg --purge --force-depends ca-certificates-java

sudo apt-get install ca-certificates-java

Und dann nochmal

dpkg -l | grep ca-cert

und prüfen ob sich an der Version von ca-certificates-java etwas geändert hat.

Danke für die Antwort,

leider hat sich nichts getan. Die Zertifikate sind immer noch die alten.

Wie wäre es, wenn du einfach mal das Ergebnis von dpkg -l | grep ca-cert hier postest?

1 Like

Erstens, das was @Rafa sagte.

Zweitens, das es etwas mit den Zertifikaten zu tun hat, war ja erst mal nur eine Vermutung. Durch https://bugs.openjdk.org/browse/JDK-8341057 begründet, aber immer noch eine Vermutung.

Um das zu überprüfen bitte einmal folgendes tun.
PP starten, und in PP dann die xml-Datei(en) (oder binär oder was Du eben benutzt) alle schließen, damit beim nächsten PP-Start nicht so viele Daten produziert werden.


In diesem Zustand PP schließen.

In das Verzeichnis gehen wo das PP-Programm ist. Bei mir z.B.

me@xubuntu:~/Dokumente/edfg/pp_prog_0.74.0$ ls
artifacts.xml  features  META-INF  p2  PortfolioPerformance
configuration  icon.xpm  metainfo  plugins  PortfolioPerformance.ini  

Die Datei PortfolioPerformance.ini editieren, am Ende die Zeile

-Djavax.net.debug=ssl:handshake:verbose:keymanager:trustmanager

anfügen, und speichern.

Nun in genau dem Verzeichnis im Terminal

me@xubuntu:~/Dokumente/edfg/pp_prog_0.74.0$ ./PortfolioPerformance 2> stderr.txt

eingeben und abschicken.
PP wird sich öffnen ohne eine Datendatei zu öffnen. Gib PP ein paar Sekunden Zeit, und schließe es wieder.
Nun sollte in Deinem PP-Verzeichnis eine Datei namens stderr.txt existieren.

me@xubuntu:~/Dokumente/edfg/pp_prog_0.74.0$ ls std*
stderr.txt

Diese Datei bitte hier hochladen, eventuell gezippt.

Darin sind dann so einige Sachen zu sehen, z.B. welcher Truststore wirklich genutzt wird,

javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.527 CET|SSLCipher.java:432|jdk.tls.keyLimits:  entry = AES/GCM/NoPadding KeyUpdate 2^37. AES/GCM/NOPADDING:KEYUPDATE = 137438953472
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.544 CET|SSLCipher.java:432|jdk.tls.keyLimits:  entry =  ChaCha20-Poly1305 KeyUpdate 2^37. CHACHA20-POLY1305:KEYUPDATE = 137438953472
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.568 CET|TrustStoreManager.java:162|Inaccessible trust store: /usr/lib/jvm/java-21-openjdk-amd64/lib/security/jssecacerts
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.569 CET|TrustStoreManager.java:113|trustStore is: /usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts
trustStore type is: pkcs12
trustStore provider is: 
the last modified time is: Sat Sep 28 20:31:31 CEST 2024
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.569 CET|TrustStoreManager.java:333|Reload the trust store
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.611 CET|TrustStoreManager.java:341|Reload trust certs
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.612 CET|TrustStoreManager.java:346|Reloaded 152 trust certs
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:30.785 CET|X509TrustManagerImpl.java:82|adding as trusted certificates (

bei mir z.B. “trustStore is: /usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts” (was in Wirklichkeit auch nur ein Link auf “/etc/ssl/certs/java/cacerts” ist.

me@xubuntu:~/Dokumente/edfg/pp_prog_0.74.0$ ls -l /usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts
lrwxrwxrwx 1 root root 27 Jan 23 23:52 /usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts -> /etc/ssl/certs/java/cacerts

Und man kann sehen, das die Schlüssel-ID des oben erwähnten Rootzertifikates im benutzten Truststore enthalten ist.
hier im Browser


hier in der stderr.txt

So kannst Du also prüfen welcher Truststore benutzt wird, und Du wirst sehen ob das Zertifikat enthalten ist.

EDIT: Die Zeile in der ini danach wieder entfernen, man muss ja nicht ständig alles loggen.

3 Likes

Und nun kommt etwas witziges, am Ende meiner stderr.txt, die ich grade produziert habe, steht:

javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.170 CET|SSLExtensions.java:204|Consumed extension: status_request
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.170 CET|SSLExtensions.java:185|Ignore unavailable extension: status_request
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.170 CET|SSLExtensions.java:185|Ignore unavailable extension: status_request
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.170 CET|SSLExtensions.java:185|Ignore unavailable extension: status_request
javax.net.ssl|ERROR|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.191 CET|TransportContext.java:375|Fatal (CERTIFICATE_UNKNOWN): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (
"throwable" : {
  sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:388)
  	at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:271)
  	at java.base/sun.security.validator.Validator.validate(Validator.java:256)
  	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:230)
  	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
  	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1302)
  	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1195)
  	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1138)
  	at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393)
  	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476)
  	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447)
  	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:206)
  	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
  	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)
  	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)
  	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
  	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
  	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:586)
  	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)
  	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1690)
  	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1614)
  	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3250)
  	at java.base/java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:603)
  	at java.base/java.net.URLConnection.getLastModified(URLConnection.java:569)
  	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:391)
  	at name.abuchen.portfolio.money.impl.ECBUpdater.update(ECBUpdater.java:85)
  	at name.abuchen.portfolio.money.impl.ECBExchangeRateProvider.update(ECBExchangeRateProvider.java:145)
  	at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.updateOnline(StartupAddon.java:115)
  	at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.run(StartupAddon.java:72)
  	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
  Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148)
  	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129)
  	at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
  	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:383)
  	... 29 more}

)
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.192 CET|SSLSocketImpl.java:1749|close the underlying socket
javax.net.ssl|DEBUG|C2|Worker-0: Wechselkurse von Europäische Zentralbank aktualisieren|2025-03-09 13:44:31.192 CET|SSLSocketImpl.java:1775|close the SSL connection (passive)

Ich bin, so scheint es, wohl selbst vom gleichen Problem betroffen, habe es aber nie bemerkt, weil ich alles nur in EUR habe und mich die Wechselkurse nie interessierten :wink:

Bei mir

me@xubuntu:~/Dokumente/edfg/pp_prog_0.74.0$ sudo apt install ca-certificates-java
[sudo] Passwort für me: 
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
ca-certificates-java ist schon die neueste Version (20190909ubuntu1.2).
ca-certificates-java wurde als manuell installiert festgelegt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

Nun werde ich mich noch etwas mehr damit beschäftigen :wink:

2 Likes