keytoolは、鍵と証明書の管理ツールである。鍵の生成、証明書の確認、証明書の獲得、証明書のインポート、証明書の削除及び自己署名証明書の生成を行える。
keytoolのコマンドオプションを次に示す。
$JAVA_HOME/jre/lib/security/cacerts
のデフォルトパスワードは changeit である。
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]