ここではJKSファイル(Javaキーストアファイル)の作り方を解説します
ここではJDKに同梱されているcacertsファイルを元にしてJKSファイルを作成する方法を解説します。
JKSファイルの作り方
JKSファイルとは
JKSファイルとは、クライアント証明書や認証局の証明書などをバイナリのJavaキーストア形式(JKS)で格納したファイルのことです。
SSL通信を行うJavaのアプリケーションの場合、HTTP通信を行うモジュールにこのJKSファイルを設定してSSL通信を実現します。
用意するもの
用意するファイル類は以下になります。
ファイル | 説明 |
---|---|
mycacert.jks | JDKに同梱されているcacertsファイル。{JAVA_HOME}/lib/security/cacerts にあるファイル。 |
client.key | CSRファイルを作成する際に使用した秘密鍵。 |
client.crt | クライアント証明書ファイル。(CSRファイルを認証局へ送付し、審査完了後に送られてくるファイル) |
server.crt | クライアント証明書を発行した組織(認証局)のサーバ証明書。(発行元から送られてくるファイル) |
JKSファイル作成の流れ
JKSファイル作成の流れは以下のとおりです。
それでは実際にJKSファイルを作成していきます。
java同梱のcacertsファイルをコピーする
JDKに同梱されているcacertsファイルを元にしてJKSファイルを作成します。
JAVA_HOMEはJDKのインストールディレクトリになります。
cp {JAVA_HOME}/lib/security/cacerts ./mycacerts.jks
コピーして作成したJKSファイルのパスワードを変更する
デフォルトのパスワードは「changeit」になっているので任意のパスワードに変更します。
keytool -storepasswd -keystore ./mycacerts.jks
キーストアのパスワードを入力してください:
新規keystore password: [changeit]と入力
新規keystore password: [任意のパスワード6文字以上]を入力
新規keystore passwordを再入力してください: 上記と同じパスワードを入力
P12ファイルを作成する
P12ファイル(PKSC)とは、ざっくり説明すると秘密鍵とクライアント証明書をまとめて1つのファイルで取り扱うためのファイル形式になります。
クライアント証明書とCSR作成時に使用した秘密鍵を使ってP12ファイルを作成します。
「-name」で指定した名前は、後でJKSファイルからP12の内容を確認する際に必要になります。
また、ここでもパスワードを入力する必要があります。
先ほどと同じパスワードでも問題ありません。
openssl pkcs12 -export -in client.crt -inkey ./client.key -out client_certs.p12 -name mycacerts
JKSファイルに作成したP12ファイルをimportする
先ほど作成したP12ファイルをJKSファイルにインポートします。
「-srcstorepass」にはP12ファイルのパスワードを指定します。
「-deststorepass」にはJKSファイルのパスワードを指定します。
keytool -importkeystore -srckeystore ./client_certs.p12 -srcstoretype pkcs12 -destkeystore ./mycacerts.jks -destkeystoretype jks -srcstorepass <P12ファイルのパスワード> -deststorepass <JKSファイルのパスワード>
CA証明書をimportする
クライアント証明書の発行元(認証局)から送られてきたサーバ証明書をインポートします。
keytool -importcert -trustcacerts -file ./server.crt -keystore ./mycacerts.jks -alias SERVER_CA
これでJKSファイルの作成ができました。
JKSファイルにP12ファイル、サーバ証明書が存在することを確認する
最後にJKSファイルの中身を確認します。
# importしたP12ファイルが存在していることを確認
keytool -list -keystore ./mycacerts.jks -storepass hoge -alias mycacerts
# 追加したサーバ証明書が存在することを確認する
keytool -list -v -keystore ./mycacerts.jks -alias SERVER_CA
追加した内容が表示されればJKSファイルの作成は完了となります。
お疲れ様でした!
まとめ
以上、JKSファイルの作成手順をご紹介しました。
最後まで読んでいただき、ありがとうございました。
この記事が少しでもみなさまのお役に立てれば嬉しいです。
当ブログではWordPressテーマにSWELLを使用しています。