Làm thế nào để yêu cầu Maven bỏ qua lỗi SSL (và tin tưởng tất cả các chứng chỉ)?


106

Tôi thường xuyên cần chạy lệnh "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

Vì tôi cần tích hợp với nhiều miền khác, nên hiện tại mỗi lần tôi phải thêm chứng chỉ của chúng vào truststore.jks của mình để ngăn lỗi bắt tay SSL.

Có cách nào tôi có thể cấu hình mvn để bỏ qua lỗi SSL không.

Câu trả lời:


235

Bạn có thể tắt tính năng kiểm tra chứng chỉ SSL bằng cách thêm một hoặc nhiều tham số dòng lệnh sau:

  • -Dmaven.wagon.http.ssl.insecure=true - cho phép sử dụng kiểm tra SSL thoải mái cho các chứng chỉ do người dùng tạo.
  • -Dmaven.wagon.http.ssl.allowall=true- cho phép khớp chứng chỉ X.509 của máy chủ với tên máy chủ. Nếu bị vô hiệu hóa, một trình duyệt như séc sẽ được sử dụng.
  • -Dmaven.wagon.http.ssl.ignore.validity.dates=true - bỏ qua các vấn đề với ngày cấp chứng chỉ.

Tài liệu chính thức: http://maven.apache.org/wagon/wagon-providers/wagon-http/

Đây là oneliner để sao chép và dán dễ dàng:

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

Ajay Gautam gợi ý rằng bạn cũng có thể thêm phần trên vào ~/.mavenrctệp để không phải chỉ định nó mọi lúc tại dòng lệnh:

$ 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
Tôi có dự án khởi động mùa xuân / maven và tôi đang sử dụng maven-jaxb2-plugin để tạo nguồn của dịch vụ web. nhưng chứng chỉ đã hết hạn. Vì vậy, tôi đã thử chạy các nguồn tạo maven với các agruments trên trong Eclipse. Nhưng tôi vẫn gặp lỗi "kiểm tra dấu thời gian không thành công" bất kỳ ý tưởng nào về cách giải quyết nó trong môi trường eclipse / maven.
Mukun

14
Câu trả lời không phù hợp với tôi. Tôi đang sử dụng maven 3.5.0 và các ngoại lệ tôi nhận được là PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Toa xe có hoạt động với MAven 3.5.0 không?
thlim

Thay vào đó, tôi đã tạo một jks kho tin cậy và trỏ maven đến tệp jks này.
thlim

3
Bằng cách cài đặt Java Cryptography Extension (JCE) Sức mạnh không giới hạn (ví JDK7 | cho JDK8 ) vấn đề sửa chữa cho tôi trên maven 3.5.0
skadya

1
Sử dụng netbeans 6.8 Tôi đã thêm các tùy chọn vào các tùy chọn maven netbeans trong 'Tùy chọn Thực thi Toàn cầu' thông qua giao diện người dùng và tôi có thể tải xuống từ các kho lưu trữ bằng https.
Dan675,

46

Một giải pháp thay thế phù hợp với tôi là yêu cầu Maven sử dụng http: thay vì https: khi sử dụng Maven Central bằng cách thêm thông tin sau vào 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>

Mileage của bạn có thể thay đổi, tất nhiên.


2
Cảm ơn, điều đó đã hiệu quả! Và xin lưu ý là hoàn nguyên khi SSL hoạt động vì điều này có thể dẫn đến việc người dùng thêm các kho lưu trữ không chuẩn có thể lưu trữ những người biết điều gì
asgs 11/1017

3
Điều này không hoạt động kể từ tháng 1 năm 2020 vì repo Maven đã tắt kết nối http
Justin

1
Sẽ gặp lỗi này kể từ tháng 1 năm 2020: Lý do Cụm từ: Yêu cầu HTTPS ", vì Maven repo đã tắt kết nối Http
Justin

8

Tạo một thư mục ${USER_HOME}/.mvn và đặt một tệp có tên maven.configtrong đó.

Nội dung phải là:

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

Hi vọng điêu nay co ich.


Tôi đã thành công khi sử dụng trực tiếp các tham số đó trên dòng lệnh, nhưng vẫn không thành công khi thêm chúng vào tệp
Justin

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.