1. ホーム
  2. maven

[解決済み] MavenにSSLエラーを無視する(そしてすべての証明書を信頼する)ように指示する方法は?

2022-02-10 13:40:34

質問内容

私は頻繁に"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

私は他の様々なドメインと統合する必要があるため、現在は毎回、SSLハンドシェイクエラーを防ぐために彼らの証明書を私のtruststore.jksに追加する必要があります。

SSLエラーを無視するようにmvnを設定する方法はありますか?

解決方法を教えてください。

以下のコマンドラインパラメータを1つ以上追加することで、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/

ここで、簡単にコピー&ペーストができるように、ワンライナーを用意しました。

-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"