Jdk keytool
生成密钥对
keytool -genkeypair -alias key_alias -keyalg RSA -keysize 2048 -storetype PKCS12 \
-validity 3650 -keystore /path/of/store -storepass store_password \
-dname "CN=commonName, OU=organizationUnit, O=organizationName, L=localityName, S=stateName, C=country"
# Example
keytool -genkeypair -alias tts -keyalg RSA -keysize 2048 -storetype PKCS12 \
-validity 3650 -keystore ~/Downloads/tts.p12 -storepass 123456 \
-dname "CN=TTS, OU=R&D, O=The Tao's Studio, L=Wuhan, S=Hubei, C=CN"
选项:
-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 通过受保护的机制的口令
删除条目
keytool -delete -alias key_alias -keystore /path/of/store -storepass store_password
# Example
keytool -delete -alias tts -keystore ~/Downloads/tts.p12 -storepass 123456
选项:
-alias <alias> 要处理的条目的别名
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
导出证书
keytool -export -alias key_alias -keystore /path/of/store -storetype PKCS12 -file /path/of/cert
# Example
keytool -export -alias tts -keystore ~/Downloads/tts.p12 -storetype PKCS12 -file ~/Downloads/tts.cer
选项:
-rfc 以 RFC 样式输出
-alias <alias> 要处理的条目的别名
-file <filename> 输出文件名
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
注意
导出 cer 时命行中可通过 -storepass 参数指定密钥库口令,但是执行时会被忽略,会要求在交互界面输入密钥库口令。
导入证书或证书链
keytool -importcert -file /path/of/cert -alias key_alias -storetype PKCS12 -keystore /path/of/store -storepass store_password
# Example
keytool -importcert -file ~/Downloads/tts.cer -alias tts -storetype PKCS12 -keystore ~/Downloads/tts_.p12 -storepass 123456
选项:
-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 详细输出