web-dev-qa-db-fra.com

Erreur Maven: (répété) Java.security.InvalidAlgorithmParameterException: le paramètre trustAnchors doit être non vide

Je dois demander à nouveau. Quelqu'un a pensé qu'il s'agissait d'une/ question en double et a déjà répondu à cette question et l'a supprimée de la liste.

J'utilise la commande de traitement par lots maven (mvn) avec Windows (et non pas M2E avec Eclipse) pour exécuter une installation propre ou résoudre les dépendances. Parfois, lorsque pom.xml était modifié, il était nécessaire de télécharger des artefacts à partir de notre serveur Nexus. Cela fonctionnait longtemps pour moi.

Mais maintenant, la connexion au serveur Nexus (https, le serveur utilise un certificat appartenant à la société) échoue avec " Java.security.InvalidAlgorithmParameterException: le paramètre trustAnchors doit être non vide " Je sais , J'ai changé la version Java. Mais je suis à peu près sûr que j'ai conservé le fichier de clés cacerts de la même manière que dans les versions précédentes. (à bail j'ai comparé les empreintes digitales dans les deux cacerts; ce sont les mêmes).

Lors de l'exécution de la commande " mvn -s -Djavax.net.debug = all -Djava.net.ssl.trustStore =" C: /Programme/Java/jre1.8.0_102/lib/security/ cacerts "-Djavax.net.ssl.trustStorePassword = modification de dépendance: résolvez ", la trace ssl indique:

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

Même si vous spécifiez le chemin d'accès et le mot de passe du magasin de clés dans la commande, la réponse dans la trace ssl est que celui-ci est introuvable. 

Je n'ai aucune idée de ce que j'aurais pu changer pour résoudre ce problème. J'ai changé le Windows PATH-Statement, mais cela ne devrait pas importer de la commande décrite précédemment. Tout indice est apprécié

7
Ulrich

J'avais le même problème et il m'a fallu un jour pour le résoudre. Il s'agit d'un problème lié à Java, comme vous pouvez le constater dans la pile d'erreurs.

/ etc/ssl/certs/Java pour le cacerts fichier.
1) Si vous n'avez pas ce fichier ici, c'est la raison pour laquelle vous obtenez cette erreur
2) Si vous avez ce fichier ici, cela signifie que ce n'est probablement pas un fichier cacerts valide.

Si vous le souhaitez, vous pouvez le mettre à jour avec:
Sudo apt-get install --reinstall ca-certificates
Et si cela fonctionne maintenant, alors parfait (dans mon cas, cela n'a pas fonctionné)

Donc, pour résoudre ceci:

  1. Téléchargez depuis open-jdk8 (dans mon cas) directement depuis Oracle
  2. Extraire les fichiers tar.gz
  3. Trouver le nouveau valide cacerts déposer sous jre/lib/security
  4. Copier ce fichier dans / etc/ssl/certs/Java (enlever l'ancien si c'est votre cas)

Enfin, lancez la commande qui vous a causé cette erreur et si tout va bien, elle est partie! J'espère que cela vous a aidé.

À votre santé

11
João Rodrigues

Aujourd'hui j'ai trouvé la raison: 

Il y a bien longtemps, j'avais déjà défini la variable d'environnement WINDOWS MAVEN_OPTS sur "Setx MAVEN_OPTS" -Djavax.net.ssl.trustStore .... ". 

Le chemin spécifié ici n'existe plus. 

Il semble que ce paramètre remplace même la demande présentée dans ma question. Je considère que ce comportement est au moins inattendu, mais quand même. Lorsque j'ai corrigé la variable d'environnement (en indiquant le nouveau chemin; mais je vais quand même le supprimer), les requêtes mvn ont bien fonctionné.

3
Ulrich

Le fait que le paramètre non valide dans l'environnement n'ait pas été ignoré avec le paramètre trustStore sur la ligne de commande est probablement dû au fait qu'il existe un typo dans votre ligne de commande. Ça dit:

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

Mais cela aurait dû être:

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

un moyen plus pratique de résoudre ce problème: 1. Allez à télécharger Corretto OpenJDK publié par Amazon 2. Installez-le en suivant les instructions de son guide. 3.parlez-vous de ce Java DK.

problème résolu dans mon Ubuntu 18.

0
wjxiz