Як сказати Maven ігнорувати помилки SSL (і довіряючи всім сертам)?


106

Мені часто потрібно запускати команду "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-помилок.

Відповіді:


236

Ви можете відключити перевірку сертифіката 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

Аджай Гаутам запропонував вам також додати вищезазначене у ~/.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, і я використовую плагін maven-jaxb2 для створення джерел веб-сервісу. але термін дії сертифікату минув Тому я спробував запустити джерела генерації Maven з вищезгаданими акрументами в Eclipse. Але я все одно отримую помилку "перевірка часової позначки не вдалася", будь-яка ідея, як вирішити це в середовищі затемнення / Maven.
Мукун

14
Відповідь для мене не працює. Я використовую Maven 3.5.0, і отримані виключення були PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Чи працює вагон з MAven 3.5.0?
тонкий

Натомість я створив jst truststore і вказав maven на цей jks-файл.
тонкий

3
Встановивши необмежену міцність Java Cryptography Extension (JCE) (для JDK7 | для JDK8 ), виправте проблему для мене на maven 3.5.0
skadya

1
Використання netbeans 6.8 Я додав параметри до опцій netbeans maven у розділі "Параметри глобального виконання" через користувальницький інтерфейс, і мені вдалося завантажити із сховищ за допомогою https.
Dan675

46

Альтернатива, яка працювала для мене, - сказати 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
Дякую, що спрацювало! І будь-ласка, зверніть увагу на повернення, як тільки SSL працює, тому що це може призвести до того, що користувачі
додадуть

3
Це не працює з січня 2020 року, оскільки Maven repo відключив http-з'єднання
Джастін

1
Отримає цю помилку з січня 2020 року: ReasonPhrase: HTTPS Потрібно ", оскільки Maven repo відключив Http-з'єднання
Джастін

8

Створіть папку ${USER_HOME}/.mvn і помістіть у неї файл, який викликається maven.config.

Вміст повинен бути:

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

Сподіваюся, це допомагає.


Мені вдалося безпосередньо використати ці параметри в командному рядку, але все-таки не вдалося, додавши їх у файл
Джастін

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.