概述
简单介绍
- keytool 是个密钥(key)和证书(certificates)管理工具。在JDK 1.4以后的版本中都包含了这一工具,它的位置为“%JAVA_HOME%binkeytool.exe”
生成逻辑
- 证书通过数字签名用于自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。也就是说至少需要两套证书,然后两套证书互相添加信任
执行路径
- C:Program FilesJavajre1.X.X_XXbin
证书相关命令
-
生成keystore密钥:keytool -genkey -alias server_a -keyalg RSA -keystore D:keystore_serverserverA.keystore -validity 36500 -dname "CN=XXX-PC,OU=company,O=company,L=BJ,ST=BJ,C=CN" -keypass 123456 -storepass 123456
-
参数说明:
-
genkey:在特定的目录创建一个".keystore"文件
-
alias:密钥别名,每个keystore都有唯一的alias,这个alias通常不区分大小写
-
keyalg:指定密钥的算法, 例如:RSA、DSA,默认采用DSA
-
keystore:指定密钥库的存放路径以及keystore文件的名称
-
validity:密钥的有效日期,以天为单位
-
dname:指定密钥拥有者信息
-
CN=名字与姓氏(公网域名,内网时证书所在电脑的电脑全名)
-
OU=组织单位名称
-
O=组织名称
-
L=城市或区域名称
-
ST=州或省份名称
-
C=单位的两字母国家代码
-
-
keypass:指定别名条目的密码(私钥的密码)
-
storepass:指定密钥库的密码(获取keystore信息所需的密码)
-
-
导出cer证书:keytool -export -alias server_a -file D:keystore_serverserverA.cer -keystore D:keystore_serverserverA.keystore -storepass 123456
-
参数说明:
-
export:将别名指定的证书导出到文件
-
file:指定导出到文件存放路径以及文件名
-
-
-
证书互相添加信任:keytool -import -alias client_b -file D:keystore_clientclientB.cer -keystore D:keystore_serverserverATrust.keystore -storepass 123456 -noprompt
-
参数说明:
-
import:将已签名数字证书导入密钥库
-
-
查看密钥库中的密钥:keytool -list -keystore ./serverATrust.keystore -storepass 123456
-
参数说明:
-
list:显示密钥库中的所有密钥信息
-
keystore:参数为密钥库的路径,可以是绝对路径也可以是相对路径,区别是执行命令的cmd窗口打开位置不一样。例如,查看D:keystore下的密钥信息,可以配置成上述的「D:keystore/serverATrust.keystore」(cmd窗口任意地方打开),也可以配置成「./serverATrust.keystore」(cmd窗口在serverATrust.keystore同级目录打开)。后面的删除命令也是一样。
-
-
删除密钥库中的密钥:keytool -delete -alias client_b -keystore ./serverATrust.keystore -storepass 123456
-
参数说明:
-
delete:删除密钥库中某个密钥
-
-
-
查看证书本身的信息:keytool -list -v -keystore D:keystore_clientclientB.keystore -storepass 123456
-
执行路径:%JAVA_HOME%jre1.8.0_65bin(该路径下应该有keystore.exe)
-
参数说明:
-
v:显示密钥库中的证书详细信息
-
-
常用命令积累
-
将证书导入到JDK下的JRE密钥库:keytool -import -file D:keystore_serverserverA.cer -keystore "%JAVA_HOME%jrelibsecuritycacerts" -alias server_a -storepass changeit
-
查看JDK下的JRE密钥库中的密钥:keytool -list -keystore "%JAVA_HOME%jrelibsecuritycacerts" -storepass changeit
-
删除JDK下的JRE密钥库中的密钥:keytool -delete -alias server_a -keystore "%JAVA_HOME%jrelibsecuritycacerts" -storepass changeit
-
将证书导入到JRE密钥库:keytool -import -file D:keystore_serverserverA.cer -keystore "C:Program FilesJavajre1.8.0_181libsecuritycacerts" -alias server_a -storepass changeit
-
查看JRE密钥库中的密钥:keytool -list -keystore "C:Program FilesJavajre1.8.0_181libsecuritycacerts" -storepass changeit
-
删除JRE密钥库中的密钥:keytool -delete -alias server_a -keystore "C:Program FilesJavajre1.8.0_181libsecuritycacerts" -storepass changeit
最后
以上就是如意冬日为你收集整理的keytool 使用记录的全部内容,希望文章能够帮你解决keytool 使用记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复