用keytool创建秘钥库以及导入导出数字证书等操作
2017-04-11 23:46
302 查看
1生成秘钥库并创建一个条目
2往已经存在的秘钥库中添加条目
3查看秘钥库中的信息
4导出数字证书文件
5将数字证书导入到自己的JRE证书库中
6从JRE的证书库中删除某个数字证书
7其他说明
因为不存储任何条目的秘钥库是没有意义的,所以我们在生成秘钥库的时候需要指定一个条目,如果不指定,默认是的条目名称是mykey
我们在D:\keystore目录下生成一个文件名为cjTomcat.keystore的秘钥库,因为这个文件是第一次生成,必须同时生成一个条目,我决定将该秘钥库存储的第一个秘钥对的条目取名为testcj。命令是:
如图:
![](http://img.blog.csdn.net/20170411233130070?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
命令敲完回车之后,需要我们依次输入一串信息,分别是秘钥库的密码、名字和姓氏等,
如图:
![](http://img.blog.csdn.net/20170411233325440?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上图中红框中的都是手动敲入的内容。名字和姓氏这里一般是填写一个域名,我这里填写的是 localhost,我的秘钥库口令使用的是hellocj
在上图中敲入y回车之后
如图:
![](http://img.blog.csdn.net/20170411233526552?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果你想让名为testcj的这个条目的秘钥口令和秘钥库的口令一样,直接回车即可,我这里让此条目的秘钥口令为testcj,所以我输入testcj
如图:
![](http://img.blog.csdn.net/20170411233602792?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
好了我们的秘钥库创建好了,秘钥库中也添加了一个名为testcj的条目,秘钥库的密码是hellocj,testcj这个条目对应的秘钥口令是testcj
说明:如果觉得一步一步的输入很不科学的话,可以使用下面的命令完成上述全部操作:
如图:
![](http://img.blog.csdn.net/20170411233653179?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如图:
![](http://img.blog.csdn.net/20170411233710105?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如图:
![](http://img.blog.csdn.net/20170411233728665?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
回车后,可以看到cmd屏幕输出了如下信息:
![](http://img.blog.csdn.net/20170411233754528?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170411233806603?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
导出成功
如图:
![](http://img.blog.csdn.net/20170411233838994?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
可以双击打开cjTomcat.cer文件,看看
如图:
![](http://img.blog.csdn.net/20170411233847747?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明:changeit是cacerts这个证书库的默认口令,因为我们需要操作cacerts这个证书库文件,所以需要输入该证书库的密码,C:\Java\jdk1.8.0_40\jre需要替换为你自己的JRE目录
回车之后,会询问是否信任cjTomcat.cer中存储的证书
如图:
![](http://img.blog.csdn.net/20170411234112419?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输入y回车
如图:
![](http://img.blog.csdn.net/20170411234155905?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明:changeit是cacerts这个证书库的默认口令,因为我们需要操作cacerts这个证书库文件,所以需要输入该证书库的密码,C:\Java\jdk1.8.0_40\jre需要替换为你自己的JRE目录
如图:
![](http://img.blog.csdn.net/20170411234211249?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVjYW9fY3Vn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
365指定有效期是365天。秘钥库的后缀名可以用任意名称,或者干脆不要后缀名也是可以的。
2往已经存在的秘钥库中添加条目
3查看秘钥库中的信息
4导出数字证书文件
5将数字证书导入到自己的JRE证书库中
6从JRE的证书库中删除某个数字证书
7其他说明
1、生成秘钥库并创建一个条目
秘钥需要存储在秘钥库中,秘钥库可以理解为一个存储了一个或多个秘钥的文件。一个秘钥库可以存储多个密钥对,每个秘钥对你都需要给他们取一个名字。因为不存储任何条目的秘钥库是没有意义的,所以我们在生成秘钥库的时候需要指定一个条目,如果不指定,默认是的条目名称是mykey
我们在D:\keystore目录下生成一个文件名为cjTomcat.keystore的秘钥库,因为这个文件是第一次生成,必须同时生成一个条目,我决定将该秘钥库存储的第一个秘钥对的条目取名为testcj。命令是:
keytool -genkey -keystore "D:\keystore\hellocj.keystore" -alias testcj -keyalg RSA -validity 365
如图:
命令敲完回车之后,需要我们依次输入一串信息,分别是秘钥库的密码、名字和姓氏等,
如图:
上图中红框中的都是手动敲入的内容。名字和姓氏这里一般是填写一个域名,我这里填写的是 localhost,我的秘钥库口令使用的是hellocj
在上图中敲入y回车之后
如图:
如果你想让名为testcj的这个条目的秘钥口令和秘钥库的口令一样,直接回车即可,我这里让此条目的秘钥口令为testcj,所以我输入testcj
如图:
好了我们的秘钥库创建好了,秘钥库中也添加了一个名为testcj的条目,秘钥库的密码是hellocj,testcj这个条目对应的秘钥口令是testcj
说明:如果觉得一步一步的输入很不科学的话,可以使用下面的命令完成上述全部操作:
keytool -genkey -keystore "D:\keystore\hellocj.keystore" -alias testcj -keyalg RSA -validity 365 -dname "CN=localhost, OU=org, O=org.cj, L=昆明, ST=云南, C=中国" -keypass testcj -storepass hellocj
如图:
2、往已经存在的秘钥库中添加条目
在第1章节讲的是创建一个秘钥库文件,并添加一个初始化条目,那么如果秘钥库文件已经存在,我们想往里面添加条目怎么办。例如我想往里面添加名为cjTomcat的条目,给该条目设置的口令是helloworld 那么我的命令是:keytool -genkey -keystore "D:\keystore\hellocj.keystore" -alias "cjTomcat" -keyalg "RSA" -validity 365 -dname "CN=127.0.0.1,OU=org, O=org.cj, L=昆明, ST=云南, C=中国" -keypass "helloworld" -storepass "hellocj"
如图:
3、查看秘钥库中的信息
好了我现在有一个秘钥库了,我知道该秘钥库的口令,我想看看该秘钥库里存了啥,命令是:keytool -list -v -keystore D:\keystore\hellocj.keystore -storepass "hellocj"
如图:
回车后,可以看到cmd屏幕输出了如下信息:
4、导出某个条目的数字证书文件
好了,秘钥库也有了,条目也有了,我想将条目名为cjTomcat的相关信息以及公钥导出到一个数字证书文件中,数字证书文件名称我取名为cjTomcat.cer,命令如下:keytool -alias "cjTomcat" -exportcert -keystore D:\keystore\hellocj.keystore -file D:\keystore\cjTomcat.cer -storepass "hellocj"
导出成功
如图:
可以双击打开cjTomcat.cer文件,看看
如图:
5、将数字证书导入到自己的JRE证书库中
数字证书中存储的一般是某个服务器的域名和公钥,服务器证书需要导入到客户端的JRE中,我将刚才生成的cjTomcat.cer这个证书视为服务器相关的信息。现在我要将条目名为cjTomcat的数字证书导入到我本地的JRE受信任的证书库中,导入命令是:keytool -import -alias "cjTomcat" -keystore C:\Java\jdk1.8.0_40\jre\lib\security\cacerts -file D:\keystore\cjTomcat.cer -trustcacerts -storepass changeit
说明:changeit是cacerts这个证书库的默认口令,因为我们需要操作cacerts这个证书库文件,所以需要输入该证书库的密码,C:\Java\jdk1.8.0_40\jre需要替换为你自己的JRE目录
回车之后,会询问是否信任cjTomcat.cer中存储的证书
如图:
输入y回车
如图:
6、从JRE的证书库中删除某个数字证书
条目名为cjTomcat的这个数字证书我不想再信任他,我要从我本地的JRE证书库中删除他,命令是:keytool -delete -alias "cjTomcat" -keystore "C:\Java\jdk1.8.0_40\jre\lib\security\cacerts" -storepass changeit
说明:changeit是cacerts这个证书库的默认口令,因为我们需要操作cacerts这个证书库文件,所以需要输入该证书库的密码,C:\Java\jdk1.8.0_40\jre需要替换为你自己的JRE目录
如图:
7、其他说明
上面命令中的参数不一一解释,很多都很直观,简单说明一下-alias指定条目名称,-keyalg "RSA"指定加密算法用RSA,-keystor指定秘钥库文件,如果目录有空格,那么请使用双引号。-validity365指定有效期是365天。秘钥库的后缀名可以用任意名称,或者干脆不要后缀名也是可以的。
相关文章推荐
- 用keytool创建秘钥库以及导入导出数字证书等操作
- oracle10g 创建表空间、用户以及导入导出数据
- Oracle10g数据库用户创建及数据导入导出操作
- oracle创建用户名和密码,授权,导入, 以及导出
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- oracle数据库部分基本操作(表数据恢复,创建用户并加权限,数据导入导出)
- oracle的dmp数据文件的导出和导入以及创建用户
- oracle导入导出表exp以及创建用户和创建表空间
- python数字类型介绍以及创建数字值对象引用、删除数字值引用操作实例
- Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)
- 通过eclipse卸载系统应用、文件的导出导入操作以及elcipse操作常见问题分析
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- 创建用户、表空间、分配权限以及导入导出数据
- C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
- SDE连接,创建数据集,数据导入以及数据导出
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- python数字类型介绍以及创建数字值对象引用、删除数字值引用操作实例
- MongoDB 客户端常用命令以及导出导入备份操作
- C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密