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.

0voto

himanshu vyas Punkte 13

Bei mir wurde das Problem gelöst, indem ich ein Jenkins-Plugin, das "Email Extension Plugin", auf die neueste Version (2.61) aktualisiert habe.

Diese beiden Plugins sind für die E-Mail-Konfiguration in Jenkins zuständig:

  • E-Mail-Erweiterung
  • E-Mail-Erweiterungsvorlage

0voto

marioosh Punkte 25753

Ich habe den gleichen Fehler beim Senden von E-Mails, aber NICHT immer. In meinem Fall habe ich eine Zeile des Codes geändert, um eine neue Sitzung Objekt jedes Mal:

MimeMessage message = new MimeMessage(Session.getDefaultInstance(props, authenticator));

zu

MimeMessage message = new MimeMessage(Session.getInstance(props, authenticator));

Seitdem funktioniert das Versenden von E-Mails jedes Mal.

Der Fehler, den ich erhielt:

javax.mail.MessagingException: Konnte Socket nicht in TLS konvertieren;
verschachtelte Ausnahme ist: javax.net.ssl.SSLException:
java.lang.RuntimeException: Unerwarteter Fehler:
java.security.InvalidAlgorithmParameterException: die trustAnchors
muss nicht leer sein bei
com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1907) bei
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:666)
at javax.mail.Service.connect(Service.java:317) at
javax.mail.Service.connect(Service.java:176) bei
javax.mail.Service.connect(Service.java:125) bei
javax.mail.Transport.send0(Transport.java:194) at
javax.mail.Transport.send(Transport.java:124)

0voto

Maarten Punkte 658

Dieser Fehler tritt auf, wenn ich einen Truststore verwende, der mit einem IBM Websphere JDK keytool im #PKCS12-Format exportiert wurde, und versuche, über SSL mit dieser Datei auf einer Oracle JRE zu kommunizieren.

Meine Lösung war, auf einer IBM JRE zu laufen oder den Truststore mit einem IBM Websphere Keytool in JKS zu konvertieren, so dass ich ihn in einer Oracle JRE ausführen konnte.

0voto

Matt Broekhuis Punkte 1895

Ein weiterer Grund dafür ist, dass es sich um einen gültigen Fehler handelt. Einige ruchlose Wi-Fi-Hotspots spielen mit Zertifikaten und Man-in-the-Middle-Angriff Wer weiß, was Sie dann tun (weglaufen!).

Einige große Arbeitgeber wenden denselben Trick an, vor allem in sensiblen Netzwerkzonen, um den gesamten verschlüsselten Datenverkehr zu überwachen (aus Sicht der Endbenutzer ist das nicht so toll, aber es mag gute Gründe dafür geben).

-1voto

Prashant Punkte 19

Sie müssen die Zertifizierungsdatei zu Ihrem Java-Keystore hinzufügen Gehen Sie zu chrom , öffnen Sie die Website, speichern Sie das Zertifikat im txt-Format

Gehen Sie zu cmd> keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -alias Root -import -file Trustedcaroot.txt

https://knowledge.digicert.com/solution/SO4085.html

Das hat wunderbar funktioniert

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