2014-01-21 170 views
59

私は頻繁に「MVN」コマンドを実行する必要があります:私は現在、様々な他のドメインと私はSSLハンドシェークエラーを防止するために、私のtruststore.jksに自分の証明書を追加する必要があるたびに統合する必要があるとしてMavenにSSLエラーを無視して(そしてすべての証明書を信頼するように)指示する方法は?

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 

を。

SSLエラーを無視するようにmvnを構成する方法はありますか。

答えて

122

あなたはこれらのコマンドラインパラメータの一つ以上を追加することによって、チェックする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

私はspring boot/mavenプロジェクトを持っており、Webサービスのソースを生成するためにmaven-jaxb2-pluginを使用しています。証明書は期限切れです。だから私はEclipseで上記の楽器を使ってソースを生成するmavenを実行しようとしました。しかし、私はまだ "タイムスタンプチェック失敗"エラーをどのようにEclipse/Maven環境で解決するか考えています。 – Mukun

+5

答えは私のためには機能しません。私はmaven 3.5.0を使用していますが、私が受け取った例外は 'PKIX path building failed:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスを見つけることができませんでした。ワゴンは3.5.0で動作しますか? – thlim

+0

代わりに、私はtruststore jksを作成し、このjksファイルにmavenを指摘しました。 – thlim

12

:httpsではなく:のsettings.xmlに以下を追加することによって、MavenのCentralを使用する場合:

<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が機能すると元に戻すための注釈を書いてください。これは、ユーザーに何がわかっているのかを知っている非標準リポジトリを追加することにつながる可能性があります。 – asgs

+0

これは私のために動作します – kn3l

0

$ {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 

は、この情報がお役に立てば幸いです。

+0

ちょうど試しました。これはMaven 3.5.0では効果がありません: – Daniel

関連する問題