web-dev-qa-db-fra.com

Comment dire à Maven de ne pas tenir compte des erreurs SSL (et de faire confiance à tous les certificats)?

J'ai souvent besoin de lancer la commande "mvn":

mvn -f pom.xml clean install -Dmaven.test.skip=false --settings /Users/myhome/settings.xml -X -Djavax.net.ssl.trustStore=/Users/myhome/truststore.jks -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=dummy -Djava.protocol.handler.pkgs=com.Sun.net.ssl.internal.www.protocol -U

Comme je dois intégrer divers autres domaines, je dois actuellement ajouter chaque fois leur certificat à my truststore.jks pour éviter les erreurs de négociation SSL.

Est-il possible de configurer MVN pour ignorer les erreurs SSL?.

77
Novice User

Vous pouvez désactiver la vérification de certificat SSL en ajoutant un ou plusieurs de ces paramètres de ligne de commande:

  • -Dmaven.wagon.http.ssl.insecure=true - permet d'utiliser une vérification SSL assouplie pour les certificats générés par l'utilisateur.
  • -Dmaven.wagon.http.ssl.allowall=true - permet la correspondance du certificat X.509 du serveur avec le nom d'hôte. Si cette option est désactivée, un navigateur tel que check sera utilisé.
  • -Dmaven.wagon.http.ssl.ignore.validity.dates=true - ignore les problèmes liés aux dates de certificat.

Documentation officielle: http://maven.Apache.org/wagon/wagon-providers/wagon-http/

Voici le oneliner pour un copier-coller facile:

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

Ajay Gautam suggère d’ajouter ce qui précède au fichier ~/.mavenrc afin de ne pas avoir à le spécifier à chaque fois en ligne de commande:

$ cat ~/.mavenrc 
MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true"
164
rec

Une alternative qui a fonctionné pour moi est de dire à Maven d’utiliser http: au lieu de https: lorsqu’on utilise Maven Central en ajoutant ce qui suit à settings.xml :

<settings>
   .
   .
   .
  <mirrors>
    <mirror>
        <id>central-no-ssl</id>
        <name>Central without ssl</name>
        <url>http://repo.maven.Apache.org/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
   .
   .
   .
</settings>

Votre kilométrage peut varier bien sûr.

29
Richard Steele

Vous pouvez également configurer m2e pour utiliser HTTP au lieu de HTTPS

force-m2e-to-use-http-lieu-de-https

1
bcarroll

Créez un dossier ${USER_HOME}/.mvn Et placez-y un fichier appelé maven.config.

Le contenu devrait être:

-Dmaven.wagon.http.ssl.insecure=true
-Dmaven.wagon.http.ssl.allowall=true
-Dmaven.wagon.http.ssl.ignore.validity.dates=true

J'espère que cela t'aides.

0
Nicola Ben