2017-11-28 11 views
0

JREキーストアに自己署名入りのCA証明書がインストールされています。私がkeytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts|grep mycertと入力すると、実際に正しくインストールされていることがわかります。しかし、私はMavenのを通じて、いくつかの機能テストを実行したときに、私は次のようなエラーが出る:MavenがJREキーストアを無視しています

Certificate for doesn't match any of the subject alternative names: []; nested exception is javax.net.ssl.SSLPeerUnverifiedException: Certificate for doesn't match any of the subject alternative names 

私のセットアップはOSXシエラ、JRE 8u151 - オラクルとMaven 3.0.5、sdkmanを介してインストールの両方です。最も奇妙なことは、IntelliJからmavenを実行すると、エラーが消えることです。私は何らかの調査をしていて、それが別のmavenランチャーを使用していることを発見しました。ここで生成されたコマンドです:

# IntelliJ 
/Users/jdebenitocalzada/.sdkman/candidates/java/8u151-oracle/bin/java 
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Djsse.enableSNIExtension=false 
-Dmaven.home=/Users/jdebenitocalzada/.sdkman/candidates/maven/3.0.5 
-Dclassworlds.conf=/Users/jdebenitocalzada/.sdkman/candidates/maven/3.0.5/bin/m2.conf 
-classpath /Users/jdebenitocalzada/.sdkman/candidates/maven/3.0.5/boot/plexus-classworlds-2.4.jar 
org.codehaus.classworlds.Launcher 
test 

# Maven 
Users/jdebenitocalzada/.sdkman/candidates/java/8u151-oracle/bin/java 
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Djsse.enableSNIExtension=false 
-Dmaven.home=/Users/jdebenitocalzada/.sdkman/candidates/maven/current 
-Dclassworlds.conf=/Users/jdebenitocalzada/.sdkman/candidates/maven/current/bin/m2.conf 
-classpath /Users/jdebenitocalzada/.sdkman/candidates/maven/current/boot/plexus-classworlds-2.4.jar 
org.codehaus.plexus.classworlds.launcher.Launcher 
test 

あなたが見ることができるように、唯一の違いは、IntelliJのはorg.codehaus.classworlds.Launcher対CLIから実行したときにMavenが使用するorg.codehaus.plexus.classworlds.launcher.Launcherを使用していることです。

私の質問は主に、コマンドラインから実行しているときにMavenがキーストアを無視している理由と、IntelliJから実行しているときに別のランナーを使用している理由と両方のランナーの違いについてです。

注:動作の違いは、CLIからIntelliJで生成されたコマンドを実行したときに正しく動作するため、JDKバージョンとは何の関係もありません。

+0

コマンドラインからのmavenは、intellijのmavenと同じJDKを使用していますか?新しいコマンドラインを起動し、 'which java'と入力してください。 – vikingsteve

+0

@vikingsteve yeah、IntelliJとMavenはコマンドラインから同じJDKを使用しています。上記のコマンドで見られるように、コマンドラインからは 'current'バージョンを指していますが、IntelliJコマンドが指摘している同じ3.0.5バージョンへのシンボリックリンクです – beni0888

答えて

1

なぜか分かりませんが、問題はmvnコマンドにいくつかのオプションを追加するためにエイリアスを使用していたという事実があるようです。これらのオプションをMAVEN_OPTS env varに移動した後、正しく動作するようになりました。

関連する問題