获取认证证书(生成证书签名请求)#
如果想得到证书认证机构的认证,则不使用上述的自签名证书,需要使用步骤导出数字证书并签发申请(Cerificate Signing Request),经证书认证机构认证并颁发后,再将认证后的证书导入本地密钥库与信任库。
- Usage:
- keytool -certreq -alias -keystore
-storepass -file - Options:
- -certreq 执行证书签发申请导出操作 -alias 密钥库中的证书条目别名 -keystore 密钥库文件名称 -storepass 密钥库口令 -file 输出的csr文件路径
生成证书签名请求栗子
- 生成证书签名请求(CSR)
- keytool -certreq -alias server -keystore ~/ssl/tomcat.jks -storepass 123456 -file ~/ssl/certreq.csr
- 查看生成的CSR证书请求
- keytool -printcertreq -file certreq.csr
导入证书库#
双向认证: 将各自的公钥证书分别导入对方的信任库,使客户端和服务端相互信任。
- Usage:
- keytool -import [-trustcacerts] -alias -keystore
-storepass -file - Options:
- -import 执行证书导入操作(importcert 简写) -alias 指定导入密钥库中的证书别名(指定的条目别名不能与密钥库中已存在的条目别名重复(导入签发证书除外)) -trustcacerts 将证书导入信任库(信任来自 cacerts 的证书) -keystore 密钥库名称 -storepass 密钥库口令 -file 输入文件名
导入证书栗子#
- 安装服务器证书(将服务器公钥证书导入客户端)
- 双向认证: 客户端信任服务端: 在客户机器上双击证书文件完成导入操作(window中导入)
- 将服务器公钥证书 server.cer 发往客户端机器 >> 双击该证书进入“证书信息”页 >> 点击【安装证书】进入“证书导入向导”首页 >> 点击【下一步】>> 选中【将所有的证书都放入下列存储】,然后单击【浏览】 >> 选择【受信任的根证书颁发机构】b并点击【确定】 >> 点击【下一步】 >> 点击【完成】。然后弹出提示【导入完成】。
- 将客户端证书 client.p12 发往客户端机器 >> 双击该证书进入“证书导入向导”首页 >> 点击【下一步】>> 点击【下一步】>> 输入证书密码(keystore密码)并点击【下一步】 >> 点击【下一步】 >> 点击【完成】。然后弹出提示【导入完成】。
- 证书导入信任库(将客户端公钥证书导入信任库)
- 双向认证: 服务端信任客户端:
- keytool -import -alias clientCert -keystore ~/ssl/truststore.jks -storepass 123456 -file ~/ssl/client.cer
- 此步骤会生成信任证书 truststore.jks文件, 文件存放需要信任的公钥证书,如客户端证书(也可以将 keystore值改为服务器密钥库,即tomcat.jks。此时的tomcat.jks 就同时是服务的密钥库和信任库)