Javaのキーストアにルート証明書を追加する

Javaは実行環境ごとにルート証明書を管理しています。そのため、オレオレ証明書を作成してOSのキーストアに登録してもJavaのプログラムからは利用できません。ここではJavaのキーストアにルート証明書を追加する方法を紹介します。

登場人物

KEYTOOL.EXE

JREのBinフォルダ内にあるプログラムです。
証明書の内容を表示することと、cacertsに登録することができます。

cacerts

ルート証明書の情報が書き込まれているファイルです。

バッチファイル

ECHO OFF
CLS
SET KEYTOOL="C:\Program Files\Java\jre7\bin\keytool.exe"
SET CACERTS="C:\Program Files\Java\jre7\lib\security\cacerts"
SET CRTFILE="C:\develop\openssl\server.crt"
REM CRTファイルのバージョンを表示する。
%KEYTOOL% -printcert -file %CRTFILE%
%KEYTOOL% -import -alias TestRootCA -keystore %CACERTS% -file %CRTFILE%

使用している環境に合わせてJavaのパスは修正してください。
ここではserver.crtを登録します。
TestRootCAという別名を付けて登録しています。

この処理を実行するとパスワードが聞かれます。
changeit
と入力してください。

その後で「この証明書を信頼しますか」と聞かれます。
y
と入力してください。

Javaの実行環境がProgramFiles配下の場合はコマンドプロンプトを管理者権限で起動する必要があります。

システム開発

Posted by @erestage