【Java】JKSファイル(Javaキーストア)の作り方

ここではJKSファイル(Javaキーストアファイル)の作り方を解説します

ここではJDKに同梱されているcacertsファイルを元にしてJKSファイルを作成する方法を解説します。

目次

JKSファイルの作り方

JKSファイルとは

JKSファイルとは、クライアント証明書や認証局の証明書などをバイナリのJavaキーストア形式(JKS)で格納したファイルのことです。

SSL通信を行うJavaのアプリケーションの場合、HTTP通信を行うモジュールにこのJKSファイルを設定してSSL通信を実現します。

用意するもの

用意するファイル類は以下になります。

ファイル説明
mycacert.jksJDKに同梱されているcacertsファイル。{JAVA_HOME}/lib/security/cacerts にあるファイル。
client.keyCSRファイルを作成する際に使用した秘密鍵。
client.crtクライアント証明書ファイル。(CSRファイルを認証局へ送付し、審査完了後に送られてくるファイル
server.crtクライアント証明書を発行した組織(認証局)のサーバ証明書。(発行元から送られてくるファイル

JKSファイル作成の流れ

JKSファイル作成の流れは以下のとおりです。

手順
java同梱のcacertsファイルをコピーする
手順
コピーして作成したJKSファイルのパスワードを変更する
手順
P12ファイルを作成する
手順
JKSファイルに作成したP12ファイルをimportする
手順
CA証明書をimportする

それでは実際に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ファイルの作成は完了となります。

お疲れ様でした!

あわせて読みたい
【HTML・プログラミング独学】初心者でも独学したい!プログラミングが身につく厳選おすすめサイト プログラミングは初心者だけど、独学で勉強してみたい! プログラミングを全くしたことがない初心者でも独学で勉強できるおすすめサイトを厳選して紹介します! 初心者...
あわせて読みたい
【Kotlin・Javaメモリリーク】KotlinやJavaでメモリリーク発生時の調査方法・ツール JavaやKotlinでOutOfMemoryErrorが発生!どうやって調査するの? ここではJavaやKotlinアプリケーションでOutOfMemoryErrorが発生した場合の調査方法について解説します...

まとめ

以上、JKSファイルの作成手順をご紹介しました。

最後まで読んでいただき、ありがとうございました。
この記事が少しでもみなさまのお役に立てれば嬉しいです。


当ブログではWordPressテーマにSWELLを使用しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次