612 Stimmen

Fehler - trustAnchors-Parameter darf nicht leer sein

Ich versuche, meine E-Mail auf Jenkins/Hudson zu konfigurieren, und erhalte ständig die Fehlermeldung:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be
    non-empty

Ich habe im Internet zahlreiche Informationen über diesen Fehler gefunden, aber ich habe keine davon gefunden. Ich verwende das JDK von Sun auf Fedora Linux (nicht OpenJDK).

Hier sind ein paar Dinge, die ich ausprobiert habe. Ich habe versucht, den Rat aus diesem Beitrag , aber das Kopieren der Cacerts von Windows auf meine Fedora-Box, die Jenkins hostet, hat nicht funktioniert. Ich habe Folgendes versucht dieser Leitfaden da ich versuche, Gmail als meinen SMTP-Server zu konfigurieren, aber auch das hat nicht funktioniert. Ich habe auch versucht, die cacert-Dateien manuell herunterzuladen und in meinen Java-Ordner zu verschieben, indem ich eine Variation der Befehle auf dieser Leitfaden .

Ich bin für jeden Vorschlag offen, da ich im Moment nicht weiterkomme. Ich habe es von einem Windows-Hudson-Server aus zum Laufen gebracht, aber unter Linux habe ich Schwierigkeiten.

18voto

ericek111 Punkte 516

Das Entfernen des Pakets ca-certificates-java und die Neuinstallation haben bei mir funktioniert ( Ubuntu MATE 17.10 (Artful Aardvark)).

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

sudo apt-get install ca-certificates-java

Vielen Dank, jdstrand: Kommentar 1 zum Fehler 983302, Re: ca-certificates-java schlägt bei der Installation von Java-Zertifikaten auf Oneiric Ocelot fehl .

17voto

muttonUp Punkte 5811

Bei mir wurde es durch das Fehlen eines trustedCertEntry im Truststore verursacht.

Verwenden Sie zum Testen:

keytool -list -keystore keystore.jks

Es gibt mir:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

cert-alias, 31-Jul-2017, PrivateKeyEntry

Auch wenn mein PrivateKeyEntry eine CA enthält es musste separat importiert werden :

keytool -import -alias root-ca1 -file rootca.crt -keystore keystore.jks

Es importiert das Zertifikat und führt dann erneut keytool -list -keystore keystore.jks jetzt gibt:

Your keystore contains 2 entries

cert-alias, 31-Jul-2017, PrivateKeyEntry,
Certificate fingerprint (SHA1): <fingerprint>

root-ca1, 04-Aug-2017, trustedCertEntry,
Certificate fingerprint (SHA1): <fingerprint>

Jetzt hat er einen trustedCertEntry, und Tomcat wird erfolgreich gestartet.

14voto

raisercostin Punkte 8349

Einige Versionen von OpenJDK-Anbietern verursachten dies, indem sie ein leeres cacerts Datei, die mit der Binärdatei verteilt wird. Der Fehler wird hier erklärt: https://github.com/AdoptOpenJDK/openjdk-build/issues/555

Sie können kopieren nach adoptOpenJdk8\jre\lib\security\cacerts die Datei aus einer alten Installation wie c:\Program Files\Java\jdk1.8.0_192\jre\lib\security\cacerts .

Die fehlerhafte Version von AdoptOpenJDK ist https://github.com/AdoptOpenJDK/openjdk8-releases/releases/download/jdk8u172-b11/OpenJDK8_x64_Win_jdk8u172-b11.zip

11voto

Freddy Boucher Punkte 1337

Ich hatte eine Menge Sicherheitsprobleme nach dem Upgrade auf OS X v10.9 (Mavericks):

  • SSL-Problem mit Amazon AWS
  • Peer nicht mit Maven und Eclipse authentifiziert
  • trustAnchors der Parameter darf nicht leer sein

Ich habe das Java-Update installiert und damit alle meine Probleme behoben: http://support.apple.com/kb/DL1572?viewlocale=en_US

10voto

steveoams Punkte 386

Ich habe solche Dinge erwartet, da ich eine alternative JVM in meiner Talend Offenes Studio (Unterstützung besteht im Moment nur bis JDK 1.7). Ich verwende 8 aus Sicherheitsgründen... sowieso

  • Aktualisieren Sie Ihren Zertifikatspeicher:

    sudo update-ca-certificates -f

dann

  • einen neuen Wert in Ihre Initialisierungsparameter einfügen

    sudo gedit $(path to your architecture specific ini i.e. TOS_DI...ini)
    
    Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts

Bei mir hat der zweite Eintrag funktioniert. Ich glaube, je nach Version von Talend Open Studio/TEnt + JVM hat es einen anderen Parameternamen, aber es sucht nach der gleichen Keystore-Datei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X