やりたいこと
Javaアプリケーションにて利用されるキーストアであるjksファイルの、中に格納されている証明書の情報をコマンドから確認する。
環境情報
- Red Hat Enterprise Linux 9.3
- java-17-openjdk-17.0.11
やり方
Javaをインストールする際に同梱されるkeytoolコマンドを利用して
$ which keytool /usr/lib/jvm/java-17-openjdk-17.x.el9.x86_64/bin/keytool
以下のようにファイルの場所及びパスワードを指定したlistオプションを利用する。
$ keytool -list -v -keystore ./key.jks -storetype JKS -storepass xxxx
そうすると以下のように情報が出力される。
Keystore type: JKS Keystore provider: SUN Your keystore contains x entries Alias name: ... Creation date: .. Entry type: trustedCertEntry Owner: CN=... Issuer: CN=... Serial number: ... Valid from: ... Certificate fingerprints: ...
補足
.jksファイルは鍵情報や証明書をパスワード付きで保管することできます。
中に格納されている情報は以下のように種別と共に管理されており、証明書であれば発行元等の情報が確認できます。
Entry type: PrivateKeyEntry
Entry type: trustedCertEntry
ちなみにパスワードを誤ると以下のようなエラーとなりました。
$ keytool -list -v -keystore ./key.jks -storetype JKS -storepass xx keytool error: java.io.IOException: keystore password was incorrect
以上、ご参考になれば幸いです。