使用 keytool 生成密钥对 + keytool 命令详解
一、生成密钥对
G:>keytool -genkeypair ^
More? -alias own-alias ^
More? -keyalg RSA ^
More? -keypass password ^
More? -sigalg SHA256withRSA ^
More? -dname "cn=zolmk,ou=zolmk,o=zolmk,l=HN,st=HN,c=CN" ^
More? -validity 3650 ^
More? -keystore keystore.jks ^
More? -storetype JKS ^
More? -storepass password
参数详解:
-genkeypair
:原-genkey
,Java 1.6 之后更改,表示生成密钥对-alias
:产生别名,每个 keystore 都会关联这一个独一无二的 alias,alias 不区分大小写-keyalg
:指定产生密钥的算法-keypass
:指定别名条目的密码(私钥的密码)-sigalg
:签名算法名称-dname
:唯一判别名,cn 所有者名称,ou 组织单位名称,o 组织名称,l 城市或区域名称,st 州或省份名称,c 两字母国家代码-validity
:有效天数-keystore
:密钥库名称-storetype
:密钥库类型-storepass
:密钥库口令
二、查看密钥库
keytool -list -v -keystore keystore.jks -storepass "password"
-list
:列出密钥库中的条目-v
:详细输出-keystore
:密钥库文件
三、keytool 全部命令
-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令
1)二级命令参数
-list
列出密钥库中的条目
-rfc 以 RFC 样式输出
-alias <alias> 要处理的条目的别名
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-genkeypair
生成密钥对
-alias <alias> 要处理的条目的别名
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-sigalg <sigalg> 签名算法名称
-destalias <destalias> 目标别名
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X.509 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-genseckey
生成密钥
-alias <alias> 要处理的条目的别名
-keypass <arg> 密钥口令
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-certreq
生成证书请求
-alias <alias> 要处理的条目的别名
-sigalg <sigalg> 签名算法名称
-file <filename> 输出文件名
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-dname <dname> 唯一判别名
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-changealias
更改条目的别名
-alias <alias> 要处理的条目的别名
-destalias <destalias> 目标别名
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-delete
删除条目
-alias <alias> 要处理的条目的别名
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-exportcert
导出证书
-rfc 以 RFC 样式输出
-alias <alias> 要处理的条目的别名
-file <filename> 输出文件名
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-gencert
根据证书请求生成证书
-rfc 以 RFC 样式输出
-infile <filename> 输入文件名
-outfile <filename> 输出文件名
-alias <alias> 要处理的条目的别名
-sigalg <sigalg> 签名算法名称
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X.509 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-importcert
导入证书或证书链
-noprompt 不提示
-trustcacerts 信任来自 cacerts 的证书
-protected 通过受保护的机制的口令
-alias <alias> 要处理的条目的别名
-file <filename> 输入文件名
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-importpass
导入口令
-alias <alias> 要处理的条目的别名
-keypass <arg> 密钥口令
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
-importkeystore
从其他密钥库导入一个或所有条目
-srckeystore <srckeystore> 源密钥库名称
-destkeystore <destkeystore> 目标密钥库名称
-srcstoretype <srcstoretype> 源密钥库类型
-deststoretype <deststoretype> 目标密钥库类型
-srcstorepass <arg> 源密钥库口令
-deststorepass <arg> 目标密钥库口令
-srcprotected 受保护的源密钥库口令
-srcprovidername <srcprovidername> 源密钥库提供方名称
-destprovidername <destprovidername> 目标密钥库提供方名称
-srcalias <srcalias> 源别名
-destalias <destalias> 目标别名
-srckeypass <arg> 源密钥口令
-destkeypass <arg> 目标密钥口令
-noprompt 不提示
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-keypasswd
更改条目的密钥口令
-alias <alias> 要处理的条目的别名
-keypass <arg> 密钥口令
-new <arg> 新口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-printcert
打印证书内容
-rfc 以 RFC 样式输出
-file <filename> 输入文件名
-sslserver <server[:port]> SSL 服务器主机和端口
-jarfile <filename> 已签名的 jar 文件
-v 详细输出
-printcertreq
打印证书请求的内容
-file <filename> 输入文件名
-v 详细输出
-printcrl
打印 CRL 文件的内容
-file <filename> 输入文件名
-v 详细输出
-storepasswd
更改密钥库的储存口令
-new <arg> 新口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出