その際に、JAVAの信頼済み証明書にテスト用のSSL証明書を登録することで回避する方法について記録します。
■症状
JAVAを使ったHTTPS通信でテストサーバに繋ぐと、SSLExceptionがでる。
■回避方法
ネットを調べていると信頼済み証明書に追加する方法と、証明書の検証をしない方法とがありましたが、後者の場合本運用にそのまま移行できないので、ここでは前者の信頼済み証明書に追加する方法について説明します。
■信頼済み証明書に登録する
- tomcatが使用しているjavaのパスを調査し、cacertsを探す
- Windowsの場合
- CentOSの場合
- keytoolを使ってcacertsに証明書(CRT)を追加する
cacertsの場所は通常以下のような場所にあります。
C:\Program Files\java\jre<バージョン番号>\lib\security
/etc/pki/ca-trust/extracted/java/
keytool -importcert -v -trustcacerts -file <証明書ファイル> -keystore <信頼済み証明書ファイル>証明書ファイル: /etc/httpd/ssl/server.crt
信頼済み証明書ファイル: /etc/pki/ca-trust/extracted/java/cacerts
各ファイルが上記の場所に保存されている場合
keytool -importcert -v -trustcacerts -file /etc/httpd/ssl/server.crt -keystore /etc/pki/ca-trust/extracted/java/cacerts [Enter] キーストアのパスワードを入力してください: 所有者: CN=www.test.jp, O=Company, L=Kyoto, ST=Kyoto, C=jp 発行者: CN=www.test.jp, O=Company, L=Kyoto, ST=Kyoto, C=jp シリアル番号: **************** 有効期間の開始日: Mon Feb 13 14:17:42 JST 2017終了日: Thu Feb 11 14:17:42 JST 2027 証明書のフィンガプリント: MD5: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** SHA1: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** SHA256: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** 署名アルゴリズム名: SHA512withRSA バージョン: 1 この証明書を信頼しますか。 [いいえ]: y 証明書がキーストアに追加されました [/etc/pki/ca-trust/extracted/java/cacertsを格納中]これは、CentOSの例になりますが、Windowsの場合適所修正してください。
■Eclipseの場合
Eclipseでデバッグしている場合は設定のサーバでどのフォルダのJAVAを使用しているか確認することが出来ます。
0 件のコメント :
コメントを投稿