使用keytool管理数字证书
keytool是Java的数字证书管理工具,用于数字证书的生成,导入,导出与撤销等操作。它与本地**库关联,并可以对本地**库进行管理,可以将私钥存放于**库中,而公钥使用数字证书进行输出。keytool在jdk安装目录的bin文件夹下:
构建自签名证书
在构建CSR之前,需要先在**库中生成本地数字证书,此时需要提供用户的身份、加密算法、有效期等一些数字证书的基本信息:
1
2
|
keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA \ -validity 365 - alias www.mydomain.com -keystore ~ /my .keystore
|
参数介绍:
-genkeypair——产生**对
-keyalg——指定加密算法
-keysize——指定**长度
-sigalg——指定签名算法
-validity——证书有效期
-alias——证书别名
-keystore——指定**库的位置
执行结果:
证书导出
执行了上面的命令后,我们已经生成了一个本地数字证书,虽然还没有经过证书认证机构进行认证,但并不影响使用,我们可以使用相应的命令对证书进行导出。
1
2
|
keytool -exportcert - alias \
-keystore ~ /my .keystore - file /tmp/my .cer -rfc
|
参数介绍:
-exportcert——执行证书导出
-alias——**库中的证书别名
-keystore——指定**库文件
-file——导出的文件输出路径
-rfc——使用Base64格式输出
执行结果:
证书导出后,可以使用打印证书命令查看证书内容:
1
|
keytool -printcert - file /tmp/my .cer
|
参数介绍:
-printcert——执行证书打印命令
-file——指定证书文件路径
执行结果:
导出CSR文件
如果想得到证书认证机构的认证,需要导出数字证书并签发申请(Cerificate Signing Request),经证书认证机构认证并颁发后,再将认证后的证书导入本地**库与信任库。
导出CSR文件命令:
1
2
|
keytool -certreq - alias \
-keystore ~ /my .keystore - file /tmp/my .csr - v
|
参数介绍:
-certreq——执行证书签发申请导出操作
-alias——证书的别名
-keystore——使用的**库文件
-file——输出的csr文件路径
-v——显示详细情况
执行结果:
导出CSR文件后,便可以到VeriSign、GeoTrust等权威机构进行证书认证了。
证书导入
获得证书认证机构办法的数字证书后,需要将其导入信任库。
导入数字证书的命令:
1
2
|
keytool -importcert -trustcacerts - alias www.mydomain.com \
- file /tmp/my .cer -keystore ~ /my .keystore
|
参数介绍:
-importcert——执行导入证书操作
-trustcacerts——将证书导入信任库
-alias——证书别名
-file——要导入的证书文件的路径
-keystore——指定**库文件
导入证书成功后,可以通过list命令来查看**库中的证书:
1
|
keytool -list - alias www.mydomain.com -keystore ~ /my .keystore
|
执行结果如下: