keytool 使用记录

1 篇文章 0 订阅
1 篇文章 0 订阅

简单介绍

  • keytool 是个密钥(key)和证书(certificates)管理工具。在JDK 1.4以后的版本中都包含了这一工具,它的位置为“%JAVA_HOME%\bin\keytool.exe”

生成逻辑

  • 证书通过数字签名用于自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。也就是说至少需要两套证书,然后两套证书互相添加信任

执行路径

  • C:\Program Files\Java\jre1.X.X_XX\bin

证书相关命令

  • 生成keystore密钥:keytool -genkey -alias server_a -keyalg RSA -keystore D:\keystore_server\serverA.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_server\serverA.cer -keystore D:\keystore_server\serverA.keystore -storepass 123456

    • 参数说明:

      • export:将别名指定的证书导出到文件

      • file:指定导出到文件存放路径以及文件名

  • 证书互相添加信任:keytool -import -alias client_b -file D:\keystore_client\clientB.cer -keystore D:\keystore_server\serverATrust.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_client\clientB.keystore -storepass 123456

    • 执行路径:%JAVA_HOME%\jre1.8.0_65\bin(该路径下应该有keystore.exe)

    • 参数说明:

      • v:显示密钥库中的证书详细信息

常用命令积累

  • 将证书导入到JDK下的JRE密钥库:keytool -import -file D:\keystore_server\serverA.cer -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -alias server_a -storepass changeit

  • 查看JDK下的JRE密钥库中的密钥:keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit

  • 删除JDK下的JRE密钥库中的密钥:keytool -delete -alias server_a -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit

  • 将证书导入到JRE密钥库:keytool -import -file D:\keystore_server\serverA.cer -keystore "C:\Program Files\Java\jre1.8.0_181\lib\security\cacerts" -alias server_a -storepass changeit

  • 查看JRE密钥库中的密钥:keytool -list -keystore "C:\Program Files\Java\jre1.8.0_181\lib\security\cacerts" -storepass changeit

  • 删除JRE密钥库中的密钥:keytool -delete -alias server_a -keystore "C:\Program Files\Java\jre1.8.0_181\lib\security\cacerts" -storepass changeit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值