.cer証明書をJavaキーストアにインポートする方法
1. 概要
KeyStoreは、その名前が示すように、基本的に証明書、公開鍵、および秘密鍵のリポジトリです。 さらに、 JDKディストリビューションには、それらの管理に役立つ実行可能ファイル、keytoolが付属しています。
一方、証明書には多くの拡張子を付けることができますが、 .cerファイルには公開X.509キーが含まれているため、本人確認にのみ使用できることに注意する必要があります。
この短い記事では、.cerファイルをJavaキーストアにインポートする方法を見ていきます。
2. 証明書のインポート
さらに面倒なことはせずに、サンプルのKeyStore内にBaeldung公開証明書ファイルをインポートしてみましょう。
keytoolには多くのオプションがありますが、関心のあるものはその名前と同じくらい簡単なimportcertです。通常、KeyStore内にはさまざまなエントリがあるため、エイリアスを使用する必要があります。 一意の名前を割り当てる引数:
> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore
> Enter keystore password:
...
> Trust this certificate? [no]: y
> Certificate was added to keystore
コマンドはパスワードと確認のプロンプトを表示しますが、storepass引数とnoprompt引数を追加することでそれらをバイパスできます。 これは、スクリプトからkeytoolを実行するときに特に便利です。
> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storepass pass123 -noprompt
> Certificate was added to keystore
さらに、KeyStoreが存在しない場合は、自動的に生成されます。 この場合、
> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storetype PKCS12
> Enter keystore password:
> Re-enter new password:
...
> Trust this certificate? [no]: y
> Certificate was added to keystore
ここでは、PKCS12KeyStoreを作成しました。 JKSとPKCS12の主な違いは、JKSはJava固有の形式であるのに対し、PKCS12はキーと証明書を格納する標準化された方法であるということです。
必要に応じて、これらの操作をプログラムで実行することもできます。
3. 結論
このチュートリアルでは、KeyStore内に.cerファイルをインポートする方法について説明しました。 そのために、keytoolのimportcertオプションを使用しました。