2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Java】新規SpringスタータープロジェクトおよびMavenの「SunCertPathBuilderException」エラー対応

Posted at

はじめに

前記事を会社で試そうとしたら、新規SpringスタータープロジェクトおよびMavenの「SunCertPathBuilderException: unable to find valid certification path to requested target」エラーにより四苦八苦したので対処法を書いておく。
証明書の設定をしたにも関わらずMavenのエラーを解消するまでに1日がかりだった。でも別のPCで試したら証明書だけであっさりエラーが解消された。
たぶん、最初にeclipseがJava 17を使用しているのに、Java 11で証明書を設定していたからかも。

環境

  • Windows 10 Pro
  • Eclipse 2023
  • Java 17
  • Spring Boot 3.1.0
  • Maven

環境変数JAVA_HOMEの設定

eclipse.iniを開きます。

eclipse.ini
-vm
C:/pleiades/2023-03/java/17/bin

環境変数画面の新規ボタンをクリックします。
「変数名」に「JAVA_HOME」を、「変数値」にeclipse.iniのvm値のbinを除いた「C:\pleiades\2023-03\java\17」を入力して下さい。
image.png

新規Springスタータープロジェクトの場合

「利用可能なコンテンツがありません。」となります。
image.png

証明書のダウンロード

ブラウザで https://start.spring.io/ にアクセス

下記記事の証明書のダウンロードを参考にする。

1.URL左のロックアイコンをクリックする
2.「接続がセキュリティで保護されています」の証明書アイコン「証明書は有効です」をクリックする
3.詳細タブでエクスポートをクリック、ローカルの適当な場所にダウンロードする

自分はダウンロードした証明書「_.spring.io.cer」を「C:¥temp」フォルダに保存した。

キーストアに証明書を追加

コマンドプロンプトを起動し以下を実行

%JAVA_HOME%\bin\keytool -importcert -keystore "%JAVA_HOME%\lib\security\cacerts" -storepass changeit -file "C:¥temp¥_.spring.io.cer"

aliasオプションを付けなかった場合、エイリアス名はmykeyとなります。

「この証明書を信頼しますか。 [いいえ]: 」が表示されたら、「はい」と入力し実行

この証明書を信頼しますか。 [いいえ]:  はい
証明書がキーストアに追加されました

動作確認

新規Springスタータープロジェクトの作成を実行し、エラーが解消されてることを確認する。

Mavenの場合

新規Springスタータープロジェクトの作成時のエラーを突破して、やれやれとホッとしたのも束の間、Mavenでも同様のエラーが発生した。
image.png

証明書のダウンロード

ブラウザで https://repo1.maven.org/maven2/ にアクセス

証明書のダウンロードは、新規Springスタータープロジェクトで証明書のダウンロードした同様の方法になります。

1.URL左のロックアイコンをクリックする
2.「接続がセキュリティで保護されています」の証明書アイコン「証明書は有効です」をクリックする
3.詳細タブでエクスポートをクリック、ローカルの適当な場所にダウンロードする

自分はダウンロードした証明書「repo1.maven.org.cer」を「C:¥temp」フォルダに保存した。

キーストアに証明書を追加

コマンドプロンプトを起動し以下を実行

%JAVA_HOME%\bin\keytool -alias repo -importcert -keystore "%JAVA_HOME%\lib\security\cacerts" -storepass changeit -file "C:¥temp¥repo1.maven.org.cer"

「この証明書を信頼しますか。 [いいえ]: 」が表示されたら、「はい」と入力し実行

この証明書を信頼しますか。 [いいえ]:  はい
証明書がキーストアに追加されました

動作確認

pom.xmlの依存関係をダウンロード出来るようになっていることを確認する。

その他設定

上記で解決するまでに下記2点の設定を追加したものの、別PCではやり直してみたところ設定しなくても動作した。
証明書の読み込みタイミングとかあるので、eclipseの再起動やPC再起動だけでも解決するかも知れない。

それでも解決しない場合、無駄とはいえないが下記の設定してみるといいかも。

eclipse.iniの末尾に追加

eclipse.ini
-Djavax.net.ssl.trustStore=C:\pleiades\2023-03\java\17\bin\lib\security\cacerts
-Djava.net.ssl.trustStorePassword=changeit

Mavenのワークスペースのデフォルト使用

eclipseの設定画面のMaven -> Java コンフィギュレーター -> JRE システム・ライブラリー・バージョンにて「ワークスペースのデフォルト使用」に切り替える。
image.png

最後に

ようやく会社でも前記事のプロジェクトを動かすことが出来た。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?