HTTPS経由でJava Web APIに接続しようとしています。ただし、例外がスローされます。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
オンラインのkeytoolとSSL証明書のチュートリアルから学んだ次の手順に従いました。
HTTPS URLをブラウザーにコピーし、SSL証明書をダウンロードして、Internet Explorerを使用してブラウザーにインストールしました。
証明書を自分のコンピューターのパスにエクスポートすると、証明書は次のように保存されました
.cer
keytoolのインポートオプションを使用しました。以下のコマンドはエラーなしで実行されました。
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
コマンドプロンプトでパスワードの入力を求められ、入力すると認証されました。
cmd
ウィンドウには、いくつかの証明書データ&署名を印刷し、私は質問を促されました。この証明書を信頼しますか?
はいと答えました。
表示されるcmdプロンプト
証明書がキーストアに追加されました
ただし、そのメッセージの後に、別の例外が表示されました。
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
最後にキーストアを確認したところ、SSL証明書が追加されておらず、接続しようとしたときに以前に取得していたものと同じ例外がアプリケーションに表示されます。
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
keytool
実行した正確なコマンドを投稿して、それを出力できますか?ここで明らかな問題のいくつかは、-keystore
引数のタイプミス、およびkeytoolがキーをインポートするキーストアを見つけられなかったという事実です