Java und Let’s Encrypt Zertifikate

Mit der Migration von GitLab auf dem Enterprise Lab der HSLU auf die Version 8.4.2 wurde gleichzeitig auch das SLL-Zertifikat ausgetauscht: Neu wird ein Let’s Encrypt-Zertifikat verwendet. Im Gegensatz zu den vorher eingesetzten StartCom-Zertifikaten sind diese wesentlich populärer und somit auch in den Keystores der meisten aktuellen Browser vorhanden. Somit haben wir nun endlich “vertrauensvolle” SSL-Verbindungen. Leider zeigt sich aber Oracle weiterhin sehr zurückhaltend: Auch in der derzeit aktuellsten Java-Version 1.8.0u72 sind die notwendigen Zertifikate von Let’s Encrypt leider nicht enthalten.

Somit müssen diese Zertifikate weiterhin in die Java-Keystores (cacerts im Verzeichnis lib/security der Java Runtimes (JRE) importiert werden. Was neu jedoch entfällt, ist der zusätzliche Patch für die Umgehung der US-Exportbestimmungen, da die Let’s Encrypt-Zertifikate eine Schlüssellänge von 2kB haben.

Die Zertifikate kann man selber besorgen, indem man sich im Browser die Eigenschaften der SLL-Verbindung anzeigen lässt und die Zertifikate dann z.B. in .crt-Dateien speichert. Diese können dann in bekannter Manier (siehe dazu auch alter Blogeintrag) mit dem keytool-Binary importiert werden:

keytool -trustcacerts -keystore cacerts -storepass changeit -noprompt -importcert -file DstRootCaX3.cer -alias dstrootcax3
keytool -trustcacerts -keystore cacerts -storepass changeit -noprompt -importcert -file LetsEncryptAuthorityX1.cer -alias letsencryptauthorityx1

Dabei ist darauf zu achten, dass man den Pfad auf das cacerts korrekt angibt. Ebenfalls weiterhin gilt für Windows, dass wenn man ein JDK (Java Development Kit) installiert hat, typischerweise zwei Runtimes (JRE) installiert sind – eine im Verzeichnis jre des JDKs und eine im Verzeichnis Programme\Java. Am einfachsten verteilt man das einmal ergänzte cacerts auf die verschiedenen vorhandenen Installationen. Danach wird eine auf HTTPS basierende Verbindung, wie sie zum Beispiel der sehr praktische Mylyn-Connector auf GitLab für Eclipse verwendet, wieder funktionieren.

Und damit es etwas einfacher geht: Die folgende ZIP-Datei enthält einerseits die zwei fehlenden Zertifikate als auch ein aktuelles, entsprechend ergänztes cacerts-File, welches die vorhandene Datei ersetzen kann. Java8-JRE-LetsEncryptCert-patch-16FS

Leave a Reply

Your email address will not be published. Required fields are marked *