Java: Write once, doesn’t run anymore …

Ein Rant. Zu Java. Und dreisten Lifetime-Bevormundungen Dritter.

Um die Jahrtausendwende – eigentlich ein paar Jahre davor – war Java der heiße Scheiß. Sun (heute in Oracle aufgegangen) als Erfinder propagierte seinerzeit »Write Once, Run Anywhere« — schreibe Dein Programm einmalig (in Java), und es läuft überall. So der Claim. Und so dachte sich auch HP (heute HPE), das ist doch eine tolle Idee, das nutzen wir für unsere iLOs, um den Bildschirm anzuzeigen (iLO ist die HP-proprietäre Technik, heute nutzten die meisten Hersteller etwas auf IPMI-Basis, um die Fernwartung von Server zu ermöglichen) — so auch im iLO3.

Screenshot
iLO3 — begrenzte Möglichkeiten.
iLO2 ist schon länger eine Strafe, denn es gibt noch keine Java-Web-Start-Option, Java-Plugins im Browser sind allerdings schon gefühlt seit zehn Jahren, zumindest auf Linux, nicht mehr verfügbar — da muß sich der kuratirende Admin mit einer Windows-8-VM behelfen, um wenigstens über die Active-X-Komponenten – andernorts auch schon längst begraben und vergessen – Zugriff zu erlangen, wenn notwendig (besser wäre es, wenn dieser Fall nicht einträte).

Aber auch iLO3 ist mit aktueller Desktop-Software komplett unbenutzbar gemacht worden — und da haben viele Köche gründlich in den Brei geschissen:

Security-Nazis (Symbolbild).
Danke für nichts, Mozilla — iLO3 kann keine Deiner hyppen neuen Ciphers. Legt Euch doch ins Gehackte!

  • HPE hat kein Update veröffentlicht, welches aktuelle TLS-Versionen nachrüstet
  • Mozilla und Google haben selbstherrlich beschlossen, daß SSLv3, TLSv1, TLSv1.1 niemand mehr zu nutzen hat, Ende der Durchsage
  • LMDE (Linux Mint Debian Edition) installiert entweder Firefox oder Firefox-ESR (eine Version, die noch TLS1.1 erlaubt) — soll angeblich am Debian-Packaging liegen
  • Oracle hat mit Java 9 Java-Web-Start abgekündigt und in Java 11 beerdigt

Screenshot
WTF?! Hallo, vielleicht brauche ich _beide_?
Zwei Stunden vertane Lebenszeit, weil ohne Rücksicht auf Verluste Funktionalität weggeworfen wurde. So hat mir die Installation von Firefox-ESR auf Debian Buster erstmal den aktuellen Firefox v101 von der Platte geputzt. Dann kam ich zwar endlich auf die iLO3-Oberfläche — aber: es gibt kein javaws-Binary mehr. Also, keines von Oracle für Debian Buster.
Unter Ubuntu 18.04 LTS nutze ich das Oracle-Binary, welches mit yED kam — aber – danke für nichts, Oracle –, jenseits Java 10 gibt’s das halt gar nicht mehr, wie die allwissende Müllhalde mir auf Anfrage mitteilte. Zitat:

Java Web Start (JWS) was deprecated in Java 9, and starting with Java 11, Oracle removed JWS from their JDK distributions. This means that clients that have the latest version of Java installed can no longer use JWS-based applications. And since public support of Java 8 has ended in Q2/2019, companies no longer get any updates and security fixes for Java Web Start.

This is why we decided to create OpenWebStart, an open source reimplementation of the Java Web Start technology. Our replacement provides the most commonly used features of Java Web Start and the JNLP standard, so that your customers can continue using applications based on Java Web Start and JNLP without any change.

Screenshot
OpenJDK kann iLO-jirc.jnlp auch 2022 nicht ausführen 🙁
Allein: OpenWebStart ist OpenJDK-basiert, und OpenJDK kann zumindest die iLO3-JNLP-Dateien nicht korrekt ausführen, irgendwo bricht das ins Essen. (Note to self: vorher muß man ›natürlich‹ erst einmal Hand an /opt/OpenWebStart/jre/lib/security/java.security legen, sonst schlägt ›natürlich‹ der Download der weiteren Dateien vom iLO3-Webserver mit TLS-Handshake-Fehlern fehl:

jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
#jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
#    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
#    include jdk.disabled.namedCurves

Aber auch damit gibt's nix zu sehen ...)

Ich kann den Umfang meines Halses schon nicht mehr messen ...

Nutzerfreundlich geht anders. Auch Menschen, die in der palliativen System­administration tätig sind – Angebote für Hardwarespenden in Form von deutlich neueren 1-HE-Proliants o. ä. nimmt der gemeinnützige Verein gerne entgegen – verdienen einen wertschätzenden Umgang! Diese Bevormundung bzgl. TLS-Versionen – Mimimi, TLSv1 ist voll kaputt und WIR entscheiden jetzt, daß Du das nicht mehr zu brauchen hast, also setz' Dich und halt's Maul! – ist indiskutabel und es wird Zeit, daß die Macht des Google-Mozilla-Kartells endlich gebrochen wird. Zu­mal iLO/IPMI in ab­ge­schotteten Netzen läuft, da gehen mir un­sichere Ver­schlüssel­ungen sowas von am Arsch vorbei ... Narf! Und dann fragen mich allen Ernstes Menschen, warum ich nur unter An­droh­ung phy­sischer Gewalt irgend­welche Updates ein­spiele — genau deshalb, laufend wird unter wirren Vorwänden Funktionales kaputt gemacht. »Never touch a running system« war nie ein besserer Rat als heutzutage.

Damit ich beim nächsten Mal nicht wieder bei Null anfangen muß, note to self:

  1. Oracle Java 8 kann man (noch?) aus alten Quellen ziehen; hier gab's 'nen Fehler bei oracle-java8-unlimited-jce-policy, aber zumindest die iLO3-Console tut dennoch
  2. Firefox-ESR gibt's als tar.bz2 von Mozilla, nach $HOME/firefox installieren, mv $HOME/firefox $HOME/firefox-esr, (cd firefox-esr; ./firefox-bin --new-instance --ProfileManager), genießen