web-dev-qa-db-ger.com

Maven-Fehler: (wiederholt) Java.security.InvalidAlgorithmParameterException: Der Parameter trustAnchors darf nicht leer sein

Muss nochmal fragen. Jemand hielt es für eine doppelte Frage und hatte diese bereits beantwortet und aus der Liste entfernt.

Ich verwende maven (mvn) batch-Befehl mit Windows (nicht m2e mit Eclipse), um die Neuinstallation auszuführen oder Abhängigkeiten aufzulösen. Manchmal, wenn pom.xml geändert wurde, ist es notwendig, Artefakte von unserem Nexus-Server herunterzuladen. Früher hat das für mich lange gedauert.

Nun schlägt die Verbindung zum nexus-Server (https, der Server verwendet ein firmeneigenes Zertifikat) mit " Java.security.InvalidAlgorithmParameterException" fehl: Der Parameter "trustAnchors" muss nicht leer sein " Ich weiß Ich habe die Java-Version geändert. Aber ich bin mir ziemlich sicher, dass ich den Cacerts-Keystore auf die gleiche Weise beibehalten habe wie in den vorherigen Releases. (Ich habe die Fingerabdrücke in beiden Cacerts verglichen; sie sind gleich).

Beim Ausführen des Befehls " mvn -s -Djavax.net.debug = all -Djava.net.ssl.trustStore =" C: /Programme/Java/jre1.8.0_102/lib/security/ cacerts "-Djavax.net.ssl.trustStorePassword = change Abhängigkeit: resol ", sagt der ssl-trace:

keyStore is :    
keyStore type is : jks
keyStore provider is : 
init keystore
init keymanager of type SunX509
trustStore is: No File Available, using empty keystore.
trustStore type is : jks
trustStore provider is : 
init truststore

Selbst wenn Sie den Pfad und das Kennwort des Schlüsselspeichers im Befehl angeben, lautet die Antwort in der SSL-Ablaufverfolgung, dass er nicht gefunden werden konnte. 

Ich habe keine Ahnung, was ich geändert haben könnte, um in diese Schwierigkeiten zu kommen. Ich habe die Windows PATH-Anweisung geändert, dies sollte jedoch für den zuvor beschriebenen Befehl keine Rolle spielen. Jeder Hinweis wird geschätzt

7
Ulrich

Ich hatte das gleiche Problem und es dauerte einen Tag, bis ich es gelöst habe. Dies ist ein Java-Problem, wie Sie vielleicht im Fehler-Stack sehen. Check in:

/ etc/ssl/certs/Java für die cacerts Datei.
1) Wenn Sie diese Datei hier nicht haben, erhalten Sie diesen Fehler
2) Wenn Sie diese Datei hier haben, bedeutet dies, dass es sich wahrscheinlich nicht um eine gültige Cacerts-Datei handelt.

Wenn Sie möchten, können Sie es aktualisieren mit:
Sudo apt-get install - ca-Zertifikate installieren
Und wenn es jetzt funktioniert, dann perfekt (in meinem Fall hat es nicht funktioniert)

Um dies zu lösen:

  1. Laden Sie von open-jdk8 (in meinem Fall) direkt von Oracle Herunter.
  2. Extrahieren Sie die tar.gz-Dateien
  3. Finden Sie das neue gültige cacerts Datei unter jre/lib/Sicherheit
  4. Kopieren Sie diese Datei nach / etc/ssl/certs/Java (Entfernen Sie die alte, wenn dies der Fall ist)

Führen Sie schließlich den Befehl aus, der Ihnen diesen Fehler verursacht hat, und hoffentlich ist er verschwunden! Hoffe, das hat geholfen.

Prost

11
João Rodrigues

Heute habe ich den Grund gefunden: 

Vor langer Zeit hatte ich die WINDOWS-Umgebungsvariable MAVEN_OPTS von "Setx MAVEN_OPTS" -Djavax.net.ssl.trustStore .... "gesetzt." 

Der hier angegebene Pfad existiert nicht mehr. 

Es scheint, dass diese Einstellung sogar die in meiner Frage gezeigte Anfrage ersetzt. Ich halte dieses Verhalten doch zumindest für unerwartet. Wenn ich die Umgebungsvariable korrigiert habe (auf den neuen Pfad zeigend; aber ich werde sie trotzdem löschen), funktionierten die mvn-Anforderungen gut.

3
Ulrich

Die Tatsache, dass der ungültige Parameter in der Umgebung nicht mit der Einstellung trustStore in der Befehlszeile überschrieben wurde, war möglicherweise darauf zurückzuführen, dass in Ihrer Befehlszeile ein typo vorhanden ist. Es sagt:

-Djava.net.ssl.trustStore=...

Das hätte aber sein sollen:

-Djavax.net.ssl.trustStore=...
2
JorB

eine weitere Möglichkeit, dieses Problem zu beheben: 1. Zum Herunterladen von Corretto OpenJDK, das von Amazon veröffentlicht wird. 2. Installieren Sie es gemäß seiner Anleitung. 3.set, um dieses Java zu verwenden DK.

problem in meinem Ubuntu 18 behoben.

0
wjxiz