如何将证书导入java默认的证书cacerts
问题: 为何需要导入证书?
与服务端进行https通信的时候,需要对服务端发过来的证书进行校验。这个校验的根据导入本地的证书。所以需要服务端的证书导入到本地客户端。默认的可信任证书是%java_home%\jre\lib\security\cacerts
.
如何导入证书?
- 从服务端导出证书(需要输入证书密码)
keytool.exe -export -alias xxx -keysotre keystore_location -file export_location/xxx.crt
- alias : 要导出哪个证书
- keystore_location : 原来生成keystore的位置
- export_location : 指定导出的位置
- 将服务端证书导入进来(需要输入cacerts证书密码,默认是 changeit )
keytool.exe -import -alias xxx -keystore "%JAVA_HOME%"\jre\lib\security\cacerts -file ${cert_localtion}/xxx.crt
ps: 如果客户端验证失败,提示no name matching localhost,这说明我们生成证书的名字填写并非是localhost,只要改成localhost即可。另外的话就是重写验证方法了,没这样做,所以具体的不贴出来了。