HTTPS経由でJavaWebAPIに接続しようとしています。ただし、例外がスローされます。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
オンラインのkeytoolとSSL証明書のチュートリアルから学んだ次の手順に従いました。
HTTPS URLをブラウザーにコピーし、SSL証明書をダウンロードして、InternetExplorerを使用してブラウザーにインストールしました。
証明書をコンピューター上のパスにエクスポートしました。証明書は次のように保存されました。
.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)