`

Java制作证书的工具keytool用法总结

阅读更多

一.keytool的概念

        keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图所示:



二.keytool的用法



三.创建证书

        创建证书主要是使用" -genkeypair",该命令的可用参数如下:


        范例:生成一个名称为test1的证书

keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

        功能:

        创建一个别名为test1的证书,该证书存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。

        参数说明:

        -genkeypair:生成一对非对称密钥;

        -alias:指定密钥对的别名,该别名是公开的;

        -keyalg:指定加密算法,本例中的采用通用的RAS加密算法;

        -keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件


        注意:

        1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等

        2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填

        执行完上述命令后,在操作系统的用户目录下生成了一个"test.keystore"的文件,如下图所示:



四.查看密钥库里面的证书

        范例:查看test.keystore这个密钥库里面的所有证书

keytool -list -keystore test.keystore


 

五.导出到证书文件

        范例:将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中

keytool -export -alias test1 -file test.crt -keystore test.keystore


        运行结果:在操作系统的用户目录(gacl)下生成了一个"test.crt"的文件,如下图所示:



六.导入证书

        范例:将证书文件test.crt导入到名为test_cacerts的证书库中

keytool -import -keystore test_cacerts -file test.crt


        如导入证书报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常,可用文本编辑器打开查看,如是乱码,则应该是“DER 编码二进制 X.509(.CER)(D)”证书,如是字母数字,则应该是"Base64 编码 X.509(.CER)(D)”证书。

        在这我用文本编辑器打开报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常的证书,是乱码的,应该是“DER 编码二进制 X.509(.CER)(D)”证书,于是再通过双击打开导出"Base64 编码 X.509(.CER)(D)”文件格式的证书,具体步骤如下:



        单选"Base64 编码 X.509(.CER)(D)”格式



        点“完成”弹出导出成功提示框即OK,用文本编辑器打开导出的证书,可以看到不是乱码的(由字母和数字组成)。

        再用keytool -export -alias test1 -file test.cer -keystore test.keystore导入证书,不报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常。

 

七.查看证书信息

        范例:查看证书文件test.crt的信息

keytool -printcert -file "test.crt"

 

八.删除密钥库中的条目

        范例:删除密钥库test.keystore中别名为test1的证书条目

keytool -delete -keystore test.keystore -alias test1



九.修改证书条目的口令

        范例:将密钥库test.keystore中别名为test2的证书条目的密码修改为xdp123456

keytool -keypasswd -alias test2 -keystore test.keystore



十.实战命令

1.生成私钥

keytool -genkey -alias aliasName -keyalg RSA -keysize 1024 -keypass 112233 -validity 1095 -keystore test1.ks -storepass 123456

 

2.根据生成的私钥导出公钥

keytool -export -alias aliasName -keystore test1.ks -file test1.cer -storepass 123456

 

3.查看证书

keytool -printcert -file /data/test1.cer

 

4.导入公钥证书

keytool -import -file /data/test1.cer -keystore cacerts -alias server

 

5.查看密钥库里面的证书

a.查看所有证书

keytool -list -keystore cacerts

b.查看别名是server的证书

keytool -list -keystore cacerts | grep server

c.根据证书的内容查看证书

keytool -list -keystore cacerts | grep D0:DB:9A:68:FE:AE:2B:EE:84:8B:5B:D0:AD:D5:83:DA:D4:31:A1:6F

Windows下:

keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts
或者
keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts | findstr /i server
或者
keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts | findstr /i entrust

        输入密钥库口令:  changeit

entrustevca, 2010-4-24, trustedCertEntry,
entrustrootcag2, 2010-6-23, trustedCertEntry,
entrust2048ca, 2010-6-23, trustedCertEntry,
entrustsslca, 2003-1-9, trustedCertEntry,

 

6.删除密钥库中的条目

keytool -delete -keystore cacerts equifaxsecureca

 

文章来源:http://www.cnblogs.com/xdp-gacl/p/3750965.html

  • 大小: 28.5 KB
  • 大小: 47.8 KB
  • 大小: 42.5 KB
  • 大小: 21.8 KB
  • 大小: 42.7 KB
  • 大小: 10.2 KB
  • 大小: 7.5 KB
  • 大小: 42 KB
  • 大小: 60.7 KB
  • 大小: 32.7 KB
  • 大小: 9.4 KB
  • 大小: 24.6 KB
  • 大小: 37.4 KB
  • 大小: 69.6 KB
  • 大小: 44.9 KB
  • 大小: 45.2 KB
  • 大小: 37.6 KB
  • 大小: 71.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics