最近遇到一个问题,JDK 7 低版本中的一些安全证书版本已经适用新的HTTPS 服务器端颁发的证书,需要使用更高版本JDK或者导入对应的证书。下面说一下证书的操作。
1. 先使用 CMD 命令进入一个高版本 JDK keytool 所在目录准备导出证书
cd G:\Java\jdk1.8.0_131\bin
2. 搜索证书名称,使用 -list -v (v 代表明细,可以看到别名,后面会用)
查看需要导出的证书, cacerts 这个文件是JDK 自己的信任证书库
keytool -list -v -keystore G:\Java\jdk1.8.0_131\jre\lib\security\cacerts
3. 确定需要的证书别名后,导出到指定证书文件
使用下面命令导出证书,注意 别名如果有空格需要用 引号括起来,指定从哪个库导出,最后导入到那个证书文件。
>keytool -exportcert -alias "digicertglobalrootca [jdk]" -keystore G:\Java\jdk1.8.0_131\jre\lib\security\cacerts -file d:\server.cer
4. 获得一个证书导入到目标证书库
指定证书文件的目录,指定要需要导入的证书库,我这个是从JDK8 导入到 jdk7 低版本
另外注意最后的存储面,这个有个默认值,changeit 如果之前自己修改过,就可能不是这个注意鉴别。
keytool -importcert -file D:\server.cer -keystore G:\Java\jdk1.7.0_80\jre\lib\security\cacerts -storepass changeit
5. 再通过上面的 列出证书命令,查看证书数量。库中会增加一个,如果途中遇到提示,是否导入输入 Y 即可。