InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Meine Ausgangssituation war folgende: Ich hatte eine Ubuntu 18.04 Maschine mit Jenkins darauf. Jenkins war frisch installiert. Nun wollte ich neue Plugins installieren, also bin ich auf die Seite des Plugin-Managers gegangen. Dort habe ich auf den Button Check now geklickt und prompt kam dann diese Fehlermeldung:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.(PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:104)
at sun.security.validator.PKIXValidator.(PKIXValidator.java:89)
Caused: java.lang.RuntimeException: Unexpected error
at sun.security.validator.PKIXValidator.(PKIXValidator.java:91)
at sun.security.validator.Validator.getInstance(Validator.java:179)
at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312)

Wie ich herausgefunden habe, war das Problem, dass unter Ubuntu 18.04 und Debian, die cacerts-Datei für Java 9, 10 und 11 das Format pkcs12 benutzt. Frühere Java Versionen haben aber die Version jks benutzt. Das pkcs12-Format verlangt aber ein Passwort, was standardmäßig changeit lautet. Bei mir musste ich nun folgendes machen:
In der /etc/default/jenkins nach der Zeile suchen, die mit JAVA_ARGS anfängt.
Dort dann einfach -Djavax.net.ssl.trustStorePassword=changeit hinzufügen. Bei mir sieht das dann so aus:

JAVA_ARGS=”-Djava.awt.headless=true -Djavax.net.ssl.trustStorePassword=changeit”

Und dann Jenkins neustarten: sudo systemctl restart jenkins

Wenn man nichts falsch gemacht hat, sollte man nun im Plugin-Manager auf Check now klicken können ohne das diese Fehlermeldung nochmals auftaucht.

Quellen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.