JavaにSSL証明書を追加する

  • 19
    Like
  • 0
    Comment
More than 1 year has passed since last update.

はじめに

社内等の開発環境のSSLで、所謂オレオレ証明書を使用していることは多いかと思います。
こうした環境を使用する場合、例えば

  • ローカルPCのTomcat上のWEBアプリからHTTPSで通信するとSSLHandshakeExceptionなどが発生して困る

という事態が起きるので、Javaにこのオレオレ証明書を追加することになるわけです。
何回か作業してるんですが、追加し終わるとすぐ手順を忘れるので、メモっておくことにします。

※ Macを使った手順ですが、Windowsでも大差ないはずです。

オレオレ証明書をDLする

FireFoxを使った手順です。

  1. オレオレ証明書を使ったサイトを表示する
  2. URLの横にある鍵アイコンを押す
  3. 「詳細を表示」ボタンを押す
  4. ページ情報のダイアログが表示され「セキュリティ」タブが表示されていることを確認する
  5. 「証明書を表示」ボタンを押す
  6. 証明書ビューアが開くので、「詳細」タブを選択する

  7. 「書き出す」ボタンを押下して、適当な名前で証明書を保存する

今回は、/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」を入力してください。