在上一篇博文中我们讲解了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"