デフォルトですべての Java アプリケーションで使用できる Java キーストアに自己署名証明書を適切にインポートするにはどうすればよいでしょうか? 質問する

デフォルトですべての Java アプリケーションで使用できる Java キーストアに自己署名証明書を適切にインポートするにはどうすればよいでしょうか? 質問する

SSL 接続を確立しようとするすべての Java アプリケーションがこの証明書を信頼するように、自己署名証明書を Java にインポートしたいと考えています。

これまでのところ、私はそれをインポートすることができました

keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem

それでも、走ろうとするとHTTPSClient.classまだ次のものを受け取ります:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX パスの構築に失敗しました: sun.security.provider.certpath.SunCertPathBuilderException: 要求されたターゲットへの有効な証明書パスが見つかりません

ベストアンサー1

Windowsの場合最も簡単な方法はプログラムを使うことです玄関

  1. portecleをダウンロードしてインストールします。
  2. まず、プログラムを実行するためにどの JRE または JDK が使用されているかを 100% 確実に把握してください。64 ビット Windows 7 では、JRE がかなり多く存在する可能性があります。Process Explorer を使用すると、この作業が簡単になります。または、次のツールを使用することもできます。System.out.println(System.getProperty("java.home"));
  3. JAVA_HOME\lib\security\cacerts ファイルを別のフォルダーにコピーします。
  4. Portecleでファイル > キーストアファイルを開くをクリックします。
  5. cacertsファイルを選択する
  6. このパスワードを入力してください: changeit
  7. ツール > 信頼できる証明書のインポートをクリックします
  8. mycertificate.pemファイルを参照します
  9. インポートをクリック
  10. 信頼パスに関する警告に対して [OK] をクリックします。
  11. 証明書の詳細が表示されたら、「OK」をクリックします。
  12. 証明書を信頼できるものとして受け入れるには、[はい] をクリックします。
  13. エイリアスの入力を求められた場合は「OK」をクリックし、証明書がインポートされたことが表示されたらもう一度「OK」をクリックします。
  14. 「保存」をクリックします。これを忘れると変更は破棄されますので、忘れないようにしてください。
  15. cacerts ファイルを元の場所にコピーします。

Linuxの場合:

次のようにして、すでに SSL 証明書を使用している Web サーバーから SSL 証明書をダウンロードできます。

$ echo -n | openssl s_client -connect www.example.com:443 | \
   sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt

必要に応じて証明書情報を確認します。

$ openssl x509 -in /tmp/examplecert.crt -text

証明書を Java cacerts キーストアにインポートします。

$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
   -storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt

おすすめ記事