Как сказать Maven игнорировать ошибки SSL (и доверять всем сертификатам)?

Мне часто нужно запустить команду "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

Поскольку мне нужно интегрироваться с различными другими доменами, поэтому в настоящее время каждый раз, когда я должен добавить свой сертификат в свой truststore.jks, чтобы предотвратить ошибки установления связи SSL.

Можно ли каким-либо образом настроить mvn для игнорирования ошибок SSL.

Ответ 1

Вы можете отключить проверку сертификатов SSL, добавив один или несколько из этих параметров командной строки:

  • -Dmaven.wagon.http.ssl.insecure=true - разрешить использование проверенной проверки SSL для генерируемых пользователем сертификатов.
  • -Dmaven.wagon.http.ssl.allowall=true - включить совпадение сертификата сервера X.509 с именем хоста. Если отключено, будет использоваться браузер, такой как проверка.
  • -Dmaven.wagon.http.ssl.ignore.validity.dates=true - игнорировать проблемы с датами сертификата.

Официальная документация: http://maven.apache.org/wagon/wagon-providers/wagon-http/

Здесь oneliner для простого копирования и вставки:

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

Ajay Gautam предположил, что вы также можете добавить выше в файл ~/.mavenrc, чтобы не указывать его каждый раз в командной строке:

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

Ответ 2

Альтернатива, которая сработала для меня, - сказать Maven использовать http: вместо https: при использовании Maven Central, добавив следующее в 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>

Ваш пробег может меняться, конечно.

Ответ 4

Создайте папку ${USER_HOME}/.mvn и поместите в maven.config файл с именем maven.config.

Содержание должно быть:

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

Надеюсь это поможет.

Ответ 5

Не могу прокомментировать ответ выше, но: