はじめに
社内等の開発環境のSSLで、所謂オレオレ証明書を使用していることは多いかと思います。
こうした環境を使用する場合、例えば
- ローカルPCのTomcat上のWEBアプリからHTTPSで通信するとSSLHandshakeExceptionなどが発生して困る
という事態が起きるので、Javaにこのオレオレ証明書を追加することになるわけです。
何回か作業してるんですが、追加し終わるとすぐ手順を忘れるので、メモっておくことにします。
※ Macを使った手順ですが、Windowsでも大差ないはずです。
オレオレ証明書をDLする
FireFoxを使った手順です。
-
オレオレ証明書を使ったサイトを表示する
-
URLの横にある鍵アイコンを押す
-
「詳細を表示」ボタンを押す
-
ページ情報のダイアログが表示され「セキュリティ」タブが表示されていることを確認する
-
「証明書を表示」ボタンを押す
-
証明書ビューアが開くので、「詳細」タブを選択する
-
「書き出す」ボタンを押下して、適当な名前で証明書を保存する
今回は、/Users/neno2000/Documents/hogecerts
として保存した前提で、話を進めます。
keytoolを使用して証明書を追加する
証明書は
${JAVA_HOME}/jre/lib/security/cacerts
に追加することになります。
※ ${JAVA_HOME}の部分は証明書を追加したいJDKのディレクトリに置き換えてください。
今回は、以下に追加を行う想定で説明します。
/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/security/cacerts
基本的には
- 先ほどDLしたオレオレ証明書を
- keytoolを使用して
-
${JAVA_HOME}/jre/lib/security/cacerts
に突っ込む
というコマンドを一発叩くだけです。
今回の場合だと、以下の様なコマンドになります。
sudo keytool -import -trustcacerts -file /Users/nenokido2000/Documents/hogecerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/security/cacerts -alias ca
※ sudoしてますが、Windowsだと必要無いですね。
keytoolが「キーストアのパスワードを入力してください」と要求してくるので、デフォルトの「changeit」を入力してください。