keytool

keytoolは、鍵と証明書の管理ツールである。鍵の生成、証明書の確認、証明書の獲得、証明書のインポート、証明書の削除及び自己署名証明書の生成を行える。

概要

keytoolのコマンドオプションを次に示す。

-dname dname
X.500の識別名を指定する。
-keyalg keyalg
鍵のペアを生成するのに使うアルゴリズムを指定する。
-keypass keypass
非公開鍵を保護するのに使うパスワードを指定する。
-keystore keystore
キーストアの場所を指定する。
-protected ture|false
専用PINリーダーなどの保護される認証パスを介してパスワードを指定する必要がある場合に指定する。
-providerArg provider_arg
-providerClass で指定したクラスのコンストラクタに対する入力引数を指定する。
-providerClass provider_class
マスタクラスファイルの名前を指定する。
-providerName provider_name
暗号化サービスプロバイダを指定する。
-storepass storepass
キーストアのパスワードを指定する。-storepassオプションを指定しない場合は、パスワードの入力を求められる。 $JAVA_HOME/jre/lib/security/cacerts のデフォルトパスワードは changeit である。
-storetype storetype
キーストアのタイプを指定する。
-v
冗長モード。詳細な証明書情報が出力される。
-validity val_days
証明書の有効期限を指定する。

ヘルプの表示

keytool -help

コマンドとそのオプションの一覧を表示する。

キーストアの内容を表示

keytool -list

指定した別名のキーストアエントリの内容を標準出力に出力する。別名を指定しなかった場合は、キーストア全体の内容を出力する。

$ $JAVA_HOME/bin/keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
キーストアのパスワードを入力してください: changeit

キーストアのタイプ: jks
キーストアのプロバイダ: SUN

キーストアには 35 エントリが含まれます。

...

証明書の内容を表示

keytool -printcert

指定したファイルから証明書を読み込み、証明書の内容を標準出力に出力する。ファイルを指定しなかった場合は、標準入力から証明書を読み込む。

証明書のインポート

keytool -importcert

指定した証明書ファイルを読み込み、指定した別名のキーストアエントリに格納する。証明書ファイルを指定しなかった場合は、標準入力から証明書又は PKCS #7 応答を読み込む。

鍵のペアを生成

keytool -genkeypair

鍵のペア(公開鍵及び関連する非公開鍵)を生成する。

秘密鍵の生成

keytool -genseckey

秘密鍵を生成して、キーストアに格納する。

キーストアのインポート

keytool -importkeystore -srckeystore src_keystore -destkeystore dest_keystore
[-srcstoretype src_storetype] [-deststoretype dest_storetype]
[-srcstorepass src_storepass] [-deststorepass dest_storepass] [-srcprotected]
[-destprotected] [-srcalias src_alias]
[-destalias dest_alias] [-srckeypass src_keypass]
[-destkeypass dest_keypass] [-noprompt]
[-srcProviderName src_provider_name] [-destProviderName dest_provider_name]
[-providerClass provider_class_name [-providerArg provider_arg]]
[-v] [-protected] [-J java_option]

ソースキーストアからターゲットキーストアへ、単一のエントリまたはすべてのエントリをインポートする。

証明書署名要求の生成

keytool -certreq [-alias alias] [-sigalg sigalg] [-file certreq_file] [-keypass keypass]
[-storetype storetype] [-keystore keystore]
[-storepass storepass] [-providerName provider_name]
[-providerClass provider_class_name [-providerArg provider_arg]]
[-v] [-protected] [-J java_option]

PKCS#10形式を使って証明書署名要求(CSR)を生成する。

証明書のエクスポート

keytool -exportcert [-alias alias] [-file cert_file] [-storetype storetype] [-keystore keystore]
[-storepass storepass]
[-providerName provider_name] [-providerClass provider_class_name] [-providerArg provider_arg]
[-rfc] [-v] [-protected] [{-J java_option]

キーストアから証明書を読み込み、ファイルに格納する。

キーストアのパスワードを変更

keytool -storepasswd [-new new_storepass] [-storetype storetype]
[-keystore keystore] [-storepass storepass] [-providerName provider_name]
[-providerClass provider_class_name [-providerArg provider_arg]] [-v] [-J java_option]

キーストアのパスワードを変更する。

非公開/秘密鍵のパスワードを変更

keytool -keypasswd [-alias alias] [-keypass old_keypass]
[-new new_keypass] [-storetype storetype] [-keystore keystore] [-storepass storepass]
[-providerName provider_name] [-providerClass provider_class]
[-providerArg provider_arg] [-v] [-J java_option]

非公開/秘密鍵のパスワードを変更する。

エントリの削除

keytool -delete [-alias alias] [-storetype storetype] [-keystore keystore] [-storepass storepass]
[-providerName provider_name]
[-providerClass provider_class [-providerArg provider_arg]]
[-v] [-protected] [-J java_option]

指定したエントリをキーストアから削除する。

キーストアエントリの移動

指定した別名から新しい別名へ、既存のキーストアエントリを移動する。

keytool -changealias [-alias alias] [-destalias dest_alias] [-keypass keypass] [-storetype storetype]
[-keystore keystore]
[-storepass storepass] [-providerName provider_name]
[-providerClass provider_class [-providerArg provider_arg]]
[-v] [-protected] [-J java_option]