1、使用keytool将https证书导入JDK详情步骤
1.2、场景介绍
比如使用JAVA设计邮箱需求,邮箱功能要对接163邮箱服务器的465端口进行邮件的发送,这时候就需要将163邮箱的https证书导入至JDK来支持邮件的发送
1.3、https安全证书的获取
https://jingyan.baidu.com/article/e75aca851e0b5f142edac632.html
可以参考百度经验的获取方法,获取到证书,并将证书保存到本地
1.4、将证书导入至JDK步骤
1.4.1、备份文件
记得备份 cacerts文件
1.4.2、使用CMD进入使用的java环境的bin目录下
1.4.3、执行导入命令
找到cacerts文件,一般在JDK环境下
我的在路径为F:\Java\jdk1.8.0_171\jre\lib\security\cacerts
执行命令行
keytool.exe -importcert -file C:\Users\Administrator\Desktop\163.cer -keystore F:\Java\jdk1.8.0_171\jre\lib\security\cacerts -storepass changeit -alias 163.cer
C:\Users\Administrator\Desktop\163.cer 为证书位置
F:\Java\jdk1.8.0_171\jre\lib\security\cacerts 为cacerts文件位置
-alias 163.cer 为起别名,如果不起别名,会使用默认名称"mykey",导致下次无法导入
回车执行命令行,输入Y确认导入,可以看到*.163.com被导入至JDK
2、可能遇到的问题
2.1、不信任证书的问题
不信任证书可能就是少了证书信任的jssecacerts文件,这个文件和1.4.1时备份的cacerts文件是同一目录
2.1.1、生成jssecacerts文件
2.1.1.1、进入JDK的bin目录下
2.1.1.1、执行命令行
由于jssecacerts与cacerts文件是同一目录,所以他的生成目录为
F:\Java\jdk1.8.0_171\jre\lib\security\jssecacerts
执行命令行为
keytool.exe -importcert -file C:\Users\Administrator\Desktop\163.cer -keystore F:\Java\jdk1.8.0_171\jre\lib\security\jssecacerts -storepass changeit -alias 163.cer
C:\Users\Administrator\Desktop\163.cer 为证书位置
F:\Java\jdk1.8.0_171\jre\lib\security\jssecacerts 为jssecacerts文件的生成位置
-alias 163.cer 为起别名,如果不起别名,会使用默认名称"mykey",导致下次无法导入
回车执行命令行,输入Y确认导入
可以看到以163证书为基础生成了一个jssecacerts文件,jssecacerts文件随便删除,需要的时候可以使用该命令行重新生成