Maven'e SSL hatalarını göz ardı etmesi (ve tüm sertifikalara güvenmesi) nasıl söylenir?


106

Sık sık "mvn" komutunu çalıştırmam gerekiyor:

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

Çeşitli diğer etki alanlarıyla entegre etmem gerektiğinden, şu anda SSL el sıkışma hatalarını önlemek için sertifikalarını truststore.jks dosyama eklemem gerekiyor.

Mvn'yi SSL hatalarını yok sayacak şekilde yapılandırmamın herhangi bir yolu var mı?

Yanıtlar:


237

Aşağıdaki komut satırı parametrelerinden birini veya birkaçını ekleyerek SSL sertifikası kontrolünü devre dışı bırakabilirsiniz:

  • -Dmaven.wagon.http.ssl.insecure=true - kullanıcı tarafından oluşturulan sertifikalar için rahat SSL kontrolünün kullanılmasını etkinleştirin.
  • -Dmaven.wagon.http.ssl.allowall=true- sunucunun X.509 sertifikasının ana bilgisayar adıyla eşleşmesini etkinleştirin. Devre dışı bırakılırsa, çek gibi bir tarayıcı kullanılacaktır.
  • -Dmaven.wagon.http.ssl.ignore.validity.dates=true - sertifika tarihleriyle ilgili sorunları dikkate almayın.

Resmi belgeler: http://maven.apache.org/wagon/wagon-providers/wagon-http/

İşte kolay bir kopyala-yapıştır için oneliner:

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

Ajay Gautam~/.mavenrc , her seferinde komut satırında belirtmek zorunda kalmamak için yukarıdakileri dosyaya ekleyebileceğinizi önerdi :

$ 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
Spring boot / maven projem var ve bir web servisinin kaynaklarını oluşturmak için maven-jaxb2-eklentisini kullanıyorum. ancak sertifikanın süresi doldu. Bu yüzden, Eclipse'de yukarıdaki agrumlarla maven oluşturmayı çalıştırmayı denedim. Ama yine de bir tutulma / maven ortamında nasıl çözüleceğine dair "zaman damgası kontrolü başarısız oldu" hatasını alıyorum.
Mukun

14
Cevap benim için çalışmıyor. Maven 3.5.0 kullanıyorum ve aldığım istisnalar PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Vagon, MAven 3.5.0 ile çalışıyor mu?
thlim

Bunun yerine, bir truststore jks oluşturdum ve bu jks dosyasına maven'i işaret ettim.
thlim

3
Java Cryptography Extension (JCE) Unlimited Strength ( JDK7 için | JDK8 için ) yükleyerek benim için maven
3.5.0'da

1
Netbeans 6.8'i kullanarak UI üzerinden 'Global Execution Options' altındaki netbeans maven seçeneklerine seçenekleri ekledim ve https kullanarak depolardan indirebildim.
Dan675

46

Yerine https: benim için çalışan bir alternatif http kullanmak Maven anlatmaktır için aşağıdakileri ekleyerek Maven Central kullanırken 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>

Yaptığınız mil değişebilir, elbette.


2
Teşekkürler, işe yaradı! Ve lütfen SSL
çalıştıktan

3
Bu, Ocak 2020'den beri çalışmıyor çünkü Maven repo http bağlantısını devre dışı bıraktı
Justin

1
Ocak 2020'den beri bu hatayı alacak: ReasonPhrase: HTTPS Gerekli ", çünkü Maven repo Http bağlantısını devre dışı bıraktı
Justin

8

Bir klasör oluşturun ${USER_HOME}/.mvn ve adında bir dosya koyunmaven.config .

İçerik şu şekilde olmalıdır:

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

Bu yardımcı olur umarım.


Bu parametreleri doğrudan komut satırında kullanmayı başardım, ancak bunları dosyaya eklerken yine de başarısız oldum
Justin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.