Как сказать 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

Вопрос:

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

Лучший ответ:

Вы можете отключить проверку сертификатов 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» Ответ №1

Альтернатива, которая сработала для меня, – сказать 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>

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

Ответ №2

Вы также можете настроить m2e для использования HTTP вместо HTTPS

force-m2e-to-use-http-instead-of-https

Ответ №3

Создайте папку ${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

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

Ответ №4

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

  • Вам необходимо maven.wagon.http.ssl.insecure чтобы включить maven.wagon.http.ssl.ignore.validity.dates или maven.wagon.http.ssl.allowall (см. wagon/blob/wagon-2.9/wagon-provider/wagon-http/src/main/java/org/apache/maven/wagon/provider/http/AbstractHttpClientWagon.java в строке 325).
  • Флаги не работали с Maven 3.2.3, но хорошо с Maven 3.6.0.
  • В Дженкинс я добавил их перед голами Мейвена.
Оцените статью
Добавить комментарий