Java自带证书管理工具keytool的使用方法

Keytool是Java自带的密钥和证书管理工具,用于管理公钥/私钥对及相关证书,进行自我认证或加密访问服务等,本文讲述如何通过keytool创建和维护证书,以及管理证书密码。

管理证书

创建证书

举例,创建一个别名为CERT_ALIAS_NAME的证书,并存储在cert.keystore的证书库中:

# 创建证书
keytool -genkeypair -alias "CERT_ALIAS_NAME" -keyalg "RSA" -keystore "cert.keystore"
# 查看密库中的证书
keytool -list -keystore cert.keystore

以上命令的参数说明:

参数 说明
-genkeypair 生成非对称密钥
-alias 指定密钥对别名
-keyalg 指定密钥的加密算法
-keystore 指定证书库文件

导出证书

将生成的证书导出为证书文件CERT_FILE_NAME.cer:

keytool -export -alias CERT_ALIAS_NAME -file CERT_FILE_NAME.cer -keystore cert.keystore

以上命令的参数说明:

参数 说明
-alias 指定证书别名
-keystore 指定证书库存储文件
-file 指定证书名称

备注:以上命令中均未指定文件路径,默认都在JDK的bin目录中,以下的命令中将指定文件路径。

导入证书

以上已经讲过如何创建和导出本地证书,然后大部分生产环境中,证书都是由专业机构生成,此时,仅需将待导入证书保存至本地,然后进入JRE证书库目录${JAVA_HOME}/jre/lib/security,运行以下命令:

keytool -import -alias CERT_ALIAS_NAME -keystore cacerts -file /opt/tmpfile/CERT_FILE_NAME.cer

输入jre证书库密码,默认是changeit,查看导入结果:

keytool -list -keystore ${JAVA_HOME}/jre/lib/security/cacerts -alias CERT_ALIAS_NAME

导入成功后,重启服务即可。

删除证书

keytool -delete -alias CERT_ALIAS_NAME -keystore ${JAVA_HOME}/jre/lib/security/cacerts

管理密码

修改证书库默认密码

keytool -storepasswd

依次输入keystore的原密码(changeit)、新密码即可。

修改指定证书的密码

举例,将测试证书库中别名为CERT_ALIAS_NAME的证书条目的密码更新为NEWPASSWD:

keytool -keypasswd -alias CERT_ALIAS_NAME -keypass OLDPASSWD -new NEWPASSWD -storepass STOREPASSWD -keystore ${JAVA_HOME}/jre/lib/security/testcert

原创文章禁止转载:技术学堂 » Java自带证书管理工具keytool的使用方法

精彩评论

2+1=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏