Eingepacktes JRE + Zertifikate

Nach dem Update funktionierte das Kursupdate leider nicht mehr.
Nach einiger Recherche mit dem Process Explorer von SysInternals habe ich dann festgestellt, dass mit der neuen Version eine Java Version mitgeliefert wird.


Da Java jedoch eine eigene Root-Zertifikatsdatei nutzt, muss diese mit dem Java-eigenen keytool angepasst werden, sofern eine SSL Decryption am Gateway stattfindet.
Also im ..\Portfolio Performance\plugins\name.abuchen.com.oracle.jre.win32.x86_1.8.172\jre\lib\security Verzeichnis die Datei cacerts angepasst werden.

  • Step 0: Backup der cacerts-Datei erstellen
  • Step 1: Root-Cert welches fĂĽr die Decryption benutzt wird besorgen. (z.B. aus dem Windows Zertifikatsspeicher)
  • Step 2: mittels ..\bin\keytool.exe -importcert -file "[Pfad+Name des Root-Certs].pem" -alias meinSpeziellesRootCert -keystore "..\Portfolio Performance\plugins\name.abuchen.com.oracle.jre.win32.x86_1.8.172\jre\lib\security\cacerts" -storepass changeit das Zertifikat hinzufĂĽgen
  • Step 3: mittles ..\bin\keytool.exe -list -keystore "..\Portfolio Performance\plugins\name.abuchen.com.oracle.jre.win32.x86_1.8.172\jre\lib\security\cacerts" -storepass changeit sich den Erfolg der MaĂźnahme anschauen.

Wow. Ich habe noch nie ein Zertifikat installieren mĂĽssen.

Was aber richtig ist, in dieser Version habe ich einen “hack” entfernt, mit der Verbindungen zu SSL Servern aufgebaut wurden ohne das Zertifikat zu checken. Mir war ehrlich gesagt nicht klar, dass diese “nicht überprüfen” auf alle Verbindungen zutrifft - und nicht nur für den Download der Inflationsrate. (Es werde ja keine Daten auf den Server übertragen sondern nur runtergeladen, trotzdem musste der Hack weg).

Ich vermute deswegen funktionieren bei Dir einige Downloads nicht. Welche sind das denn?

Korrekt. Ich packe jetzt das JRE ein. Es gab einfach zu viele Probleme mit falschen JRE.

Und dann hatte mich der Satz in der Oracle Java SE Support Roadmap aufhorchen lassen (fett von mir):

Oracle does not plan to migrate desktops from Java 8 to later versions via the auto update feature. Individuals who require Java SE for non-corporate desktop use will continue to receive updates through at least December 2020. Instead of relying on a pre-installed standalone JRE, we encourage application developers to deliver JREs with their applications. More details will be made available through early 2018.

Es gibt - bis auf weiteres - auch die Downloads ohne JRE. Einfach auf “Files” gehen und dann das passende, nicht “Distro” ZIP runterladen.

Tja, das waren alle SSL-Verbindungen, also Yahoo, Onvista, AlphaVantage, usw. betroffen.

Normalerweise stellt dies bei Windows-Rechnern kein Problem dar, da hier die meisten Anwendungen auf den Cert-Store des OS zurĂĽckgreifen, nicht jedoch z.B. Firefox und Java. FĂĽr das Windows-OS kann man das Root-Cert des Gateways per GPO verteilen und dann nutzen es IE, Edge und auch Chrome, soweit die meisten anderen Anwendungen.
Unter Linux oder MacOS ist es komplett Handarbeit.

Bei der Decryption werden alle Zertifikate zur Laufzeit umgeschrieben und von einer Enterprise-CA neu ausgestellt.

Wenn man sich diesen Artikel anschaut, wird die Hinterlistigkeit deutlich https://opensource.stackexchange.com/questions/4824/is-it-legal-to-bundle-oracles-jre-with-an-open-source-program/4826 .

Persönlich wäre mir das Bundling zu heiß, selbst wenn die Software unter die Ausnahmen fällt, kann Oracle dies von heute auf morgen, still und heimlich hintenrum ändern.

Mit jeder Java Installation kommen eine ganze Menge Root Zertifikate die die gängigen Server abdeckt. Ich habe es auf meinem Windows 10 Image getestet - da funktionieren diese Optionen. Wie gesagt, es gibt auch die Downloads ohne Java.

Allerdings weiß ich nicht genau was Du mit “sofern eine SSL Decryption am Gateway” meinst. Es hört sich auf jeden Fall krass nach man in the middle an: “Bei der Decryption werden alle Zertifikate zur Laufzeit umgeschrieben und von einer Enterprise-CA neu ausgestellt.”

Danke fĂĽr den Link. Schaue ich mir an.

Technisch gesehen ist es genau das. In groĂźen Firmennetzwerken durchaus nicht selten anzutreffen. Derartige Funktionen haben die meisten Firewallhersteller im Portfolio.
Z.B. Next-Generation Firewalls - Palo Alto Networks Oder Using Threat Prevention with HTTPS Traffic

Anstatt mit Zertifikaten in der cacerts sich abgeben zu müssen, kann auch die PortfolioPerformance.ini um folgende Zeilen auf Windows-Rechner ergänzt werden:

-Djavax.net.ssl.trustStore=NUL
-Djavax.net.ssl.trustStoreType=Windows-ROOT

Damit wird dann der Certificate Store des Windows OS genutzt.
WeiterfĂĽhrende Infos unter Java Consultant Tip: SSL Certificates and Man in the Middle SSL Proxy | by Charles Chan | Medium

1 Like

Dies hat bei mir sehr lange funktioniert, in letzter Zeit aber nicht mehr. Hat sich mit den letzten Updates etwas and dieser Methode geändert?

Wie im ursprĂĽnglichen Beitrag beschrieben funktioniert es auch auf dem Mac. Hier die entsprechenden, angepassten Befehle:

  • keytool -import -file [Pfad+Name des Root-Certs].cer -alias meinSpeziellesRootCert -keystore /Applications/PortfolioPerformance.app/Contents/Eclipse/plugins/name.abuchen.zulu.jre.macosx.aarch64_17.0.5/Contents/Home/lib/security/cacerts -storepass changeit

  • keytool -list -keystore /Applications/PortfolioPerformance.app/Contents/Eclipse/plugins/name.abuchen.zulu.jre.macosx.aarch64_17.0.5/Contents/Home/lib/security/cacerts -storepass changeit

1 Like