在上一篇博文中我们讲解了keytool工具的一些参数的具体含义,本博文将带领大家来学习怎样使用keytool工具生成keystore文件和导出证书、以及对证书的操作。
(一)分阶段生成
输入下面这些数据到windows的dos窗口中,然后回车,将会提示你输入生成所需的信息;然后按照提示操作即可,如下:
keytool -genkey
-alias yushan(别名)
-keypass yushan(别名密码)
-keyalg RSA(算法)
-keysize 1024(密钥长度)
-validity 365(有效期,天单位)
-keystore e:yushan.keystore(指定生成证书的位置和证书名称)
-storepass 123456(获取keystore信息的密码);回车输入相关信息即可;主要输入的信息如下:
您的名字与姓氏是什么?
[Unknown]: test
您的组织单位名称是什么?
[Unknown]: bug315
您的组织名称是什么?
[Unknown]: bug315
您所在的城市或区域名称是什么?
[Unknown]: chengdu
您所在的州或省份名称是什么?
[Unknown]: sichuansheng
该单位的两字母国家代码是什么
[Unknown]: china
CN=test, OU=bug315, O=bug315, L=chengdu, ST=sichuansheng, C=china 正确吗?
[否]:y(二)一次性生成
指将keystore生成所需要的所有信息都写在命令中,然后回车,keystore就生成好了。-dname选项主要包括如下字段:
CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)
【实例】在E盘下面生成一个test.keystore的文件,如下:
C:Usersadministrator>keytool -genkey
-alias testAlias
-keypass aaaaaa
-keysize 1024
-validity 365
-keystore e: est.keystore
-storepass 123456
-dname "CN=Test, OU=, O=, L=ChengDu, ST=,C="回车将会在E盘生成一个test.keystore文件,注意:-dName并不是所有选项都必须填写。
顾名思义,查看信息就是查看指定keystore文件包含的信息。如下:查看keystore中的详细信息
C:Usersadministrator>keytool -list -v -keystore E: est.keystore -storepass 123456显示内容:
Keystore 类型: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 输入
别名名称: huangxin
创建日期: 2015-11-12
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
所有者:CN=huang, OU=basjans, O=basjans, L=chengdu, ST=sichuansheng, C=china
签发人:CN=huang, OU=basjans, O=basjans, L=chengdu, ST=sichuansheng, C=china
序列号:5643f2db
有效期: Thu Nov 12 10:00:59 CST 2015 至Fri Nov 11 10:00:59 CST 2016
证书指纹:
MD5:58:2B:BC:7C:DB:C9:62:E9:3E:64:F5:28:A3:6B:3D:72
SHA1:82:4E:E5:72:23:93:0F:0C:E4:F8:3B:D5:33:27:85:9A:50:6C:84:C5
签名算法名称:SHA1withDSA
版本: 3
*******************************************
*******************************************缺省情况下,-list 命令打印证书的 MD5 指纹。而如果指定了 -v 选项,将以可读格式打印证书,如果指定了 -rfc 选项,将以可打印的编码格式输出证书。
实例:使用-list 和 -rfc显示keystore的详细信息
keytool -list -rfc -keystore e: est.keystore -storepass 123456显示内容:
-------------------------------------------------------------------------------------------------------
Keystore 类型: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 输入
别名名称: yushan
创建日期: 2009-7-29
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
-----BEGIN CERTIFICATE-----
MIICSzCCAbSgAwIBAgIESm8p7TANBgkqhkiG9w0BAQUFADBqMQ8wDQYDVQQGDAbkuK3lm70xDzAN
BgNVBAgMBua5luWNlzEPMA0GA1UEBwwG5rmY5r2tMREwDwYDVQQKDAh4eOWNj+S8mjERMA8GA1UE
CwwIeHjlhazlj7gxDzANBgNVBAMTBnl1c2hhbjAeFw0wOTA3MjgxNjQwMTNaFw0xMDA3MjgxNjQw
MTNaMGoxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5rmW5Y2XMQ8wDQYDVQQHDAbmuZjmva0x
ETAPBgNVBAoMCHh45Y2P5LyaMREwDwYDVQQLDAh4eOWFrOWPuDEPMA0GA1UEAxMGeXVzaGFuMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJoru1RQczRzTnBWxefVNspQBykS220rS8Y/oX3mZa
hjL4wLfOURzUuxxuVQR2jx7QI+XKME+DHQj9r6aAcLBCi/T1jwF8mVYxtpRuTzE/6KEZdhowEe70
liWLVE+hytLBHZ03Zhwcd6q5HUMu27du3MPQvqiwzTY7MrwIvQQ8iQIDAQABMA0GCSqGSIb3DQEB
BQUAA4GBAGoQQ1/FnTfkpQh+Ni6h3fZdn3sR8ZzDMbOAIYVLAhBb85XDJ8QZTarHbZMJcIdHxAl1
i08ct3E8U87V9t8GZFWVC4BFg/+zeFEv76SFpVE56iX7P1jpsu78z0m69hHlds77VJTdyfMSvtXv
sYHP3fxfzx9WyhipBwd8VPK/NgEP
-----END CERTIFICATE-----
-------------------------------------------------------------------------------------------------------keytool -export
-alias yushan
-keystore e:yushan.keystore
-file e:yushan.crt(指定导出的证书位置及证书名称)
-storepass 123456
keytool -printcert -file yushan.crt显示:(在windows下可以双击yushan.crt查看)
-----------------------------------------------------------------------
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
序列号:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
证书指纹:
MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
签名算法名称:SHA1withRSA
版本: 3
-----------------------------------------------------------------------(1)准备一个将要被导入的证书,输入下面命令执行,将会在e:shuany.keystore生成一个keystore文件,如下:
keytool -genkey
-alias shuany
-keypass shuany
-keyalg RSA
-keysize 1024
-validity 365
-keystore e:shuany.keystore
-storepass 123456 -dname "CN=shuany,OU=xx, O=xx, L=xx, ST=xx, C=xx";(2)执行下面命令导出一个证书,证书位于e:shuany.crt目录,如下:
keytool -export
-alias shuany
-keystore e:shuany.keystore
-file e:shuany.crt
-storepass 123456(3)现在将shuany.crt 证书加入到yushan.keystore中了,如下:
keytool -import
-alias shuany
-file e:shuany.crt
-keystore e:yushan.keystore
-storepass 123456注意:其中的-alias指定导入证书的别名,如果不指定默认为mykey,别名唯一,否则导入出错。
(4)使用-list -v命令选项查看已经被导入的证书,如下:
keytool -list -v
-keystore e:keytool yushan.keystore
-storepass 123456显示:
------------------------------------------------------------------------------
Keystore 类型: JKS
Keystore 提供者: SUN
您的 keystore 包含 2 输入
别名名称: yushan
创建日期: 2009-7-29
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
序列号:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
证书指纹:
MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
签名算法名称:SHA1withRSA
版本: 3
*******************************************
*******************************************
别名名称: shuany
创建日期: 2009-7-29
输入类型: trustedCertEntry
所有者:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
签发人:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
序列号:4a6f2cd9
有效期: Wed Jul 29 00:52:41 CST 2009 至Thu Jul 29 00:52:41 CST 2010
证书指纹:
MD5:15:03:57:9B:14:BD:C5:50:21:15:47:1E:29:87:A4:E6
SHA1:C1:4F:8B:CD:5E:C2:94:77:B7:42:29:35:5C:BB:BB:2E:9E:F0:89:F5
签名算法名称:SHA1withRSA
版本: 3
*******************************************
*******************************************
------------------------------------------------------------------------------keytool -delete
-alias shuany
-keystore yushan.keystore
-storepass 123456注意:其中-alias表示指示被删除的别名。
keytool -keypasswd
-alias yushan
-keypass yushan
-new 123456
-keystore e:yushan.keystore
-storepass 123456注意:
-new 表示指示别名的新密码
-keypass 旧密码
keytool -storepasswd
-keystore e:yushan.keystore
-storepass 123456
-new yushan注意:
-new 表示指示别名的新密码
-storepass 旧密码
keytool -selfcert
-alias yushan
-keypass yushan
-keystore e:yushan.keystore
-storepass 123456
-dname "cn=yushan,ou=yushan,o=yushan,c=us"