证书创建和管理工具 Keytool用法总结

SUN公司提供了创建和管理证书的工具keytool,一般放在jdk下<JAVA_HOME>\bin\keytool.exe。

先来说一下加解密算法的分类。基本上可以分为三类,它们分别是对称性解密算法、非对称性加密算法和消息摘要算法。

对称性加密算法使用同一个密钥对信息进行加密和解密,其信息的安全性一部分取决于加密算法和密钥的长度,另一部分取决于密钥在传递过程中是否会被截获或盗取。

非对称性加密算法使用两个密钥分别对信息进行加密和解密,这两个密钥称为私钥/公钥对。使用私钥加密的信息必须使用公钥解密,反之亦然。公钥可以公开发布,私钥由加密方保存,绝对不公开,将私钥被截获或窃取的可能性降到最低,因此非对称性加密算法的安全性比对称性加密算法的安全性更高。

Keytool将密钥(key)和证书(certificates)存在一个称为keystore的密钥库中。在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥。

要进行非对称性加密,我们首先要有属于自己的私钥/公钥对,创建密钥对的时候, keytool 会在 keystore 中生成一个新的条目,-alias xxx 选项就是对该条目进行命名。生成密钥对之后,私钥是以原始数据直接储存在 keystore 中的,而公钥是要发布出去的,所以它被封装在一个 X.509 格式的自签名证书中。换句话说,创建密钥对的时候,同时就创建了一个自签名的证书。

1 在密钥库中创建证书条目

keytool -genkey -keyalg RSA -alias aliceCA -dname "cn=localhost"-keystoreserver.keystore -storepass changeit -validity 3650

功能:

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

参数说明:

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

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

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

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

-storepass:密钥库密码为changeit

aliceCA的证书条目也有一个密码,可以与密钥库密码相同,也可以在命令行交互式指定。

2 查看证书库中的证书条目

keytool -list -keystore server.keystore

keytool –list -v -keystore server.keystore

3 把证书条目导出到证书文件中

keytool -export -alias aliceCA -file server.cer -keystore server.keystore -storepass changeit

4 把证书导入到证书库(客户端)中(将证书文件server.cer导入到证书库CAcerts中)

keytool -import -alias aliceCA -fileserver.cer -keystore CAcerts-storepass changeit

keytool -import -trustcacerts -alias cntvCA-file F:/projects/cntv.neulion.com.cn.crt -keystore "C:/ProgramFiles/Java/jdk1.8.0_71/jre/lib/security/cacerts" -storepass changeit

CAcerts位于jdk下jre/lib/security下面

-trustcacerts(官方文档:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html)

Before adding the certificate to the keystore, keytooltries to verify it by attempting to construct a chain of trust fromthat certificate to a self-signed certificate (belonging to a rootCA), using trusted certificates that are already available in thekeystore.

If the -trustcacerts option has been specified,additional certificates are considered for the chain of trust,namely the certificates in afile named"cacerts".

5 查看证书文件的信息

keytool -printcert -file server.cer

6 删除密钥库中的条目

keytool -delete -keystore server.keystore -alias aliceCA

7 修改证书条目的密码

keytool -keypasswd -alias aliceCA -keystore server.keystore

这里需要输入密钥库密码,输入旧的证书条目密码,然后输入新的证书条目密码。

keytool -keypasswd -alias aliceCA -keypass 旧密码 -new 新秘密 -storepass 密钥库密码 -keystore server.keystore


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值