Java https服务器证书认证问题解决方案
来源:互联网 发布:inmobi 知乎 编辑:程序博客网 时间:2024/05/16 10:26
Java https连接的”unable to find valid certification path to requested target”,”PKIX path building failed”错误
问题原因
这个问题的是由于Java自带的根证书库中不包含HTTPS服务器上的根证书,因此无法得到认证。
解决方案
比较容易实现的方案有两种:
- 导入服务器证书到本地Java环境
- 代码中忽略证书信任问题
由于第二种方案会导致安全性问题,因此并不推荐。
证书导入注意事项
将服务器的根证书导入到Java运行环境的根证书库中,能解决对应的服务器https连接问题。
实现方式是使用$JAVA_HOME/jre/bin下的keytool工具将服务器端的证书添加到jre/lib/security/cacerts文件中。
需要注意的是:
- 确定当前Java程序所用的java运行环境jre的路径(可能为jdk下的jre,也可能是单独的jre)。
- 确定有jre/lib/security/cacerts文件的写入权限(可以用管理员权限运行keytool)。
详细步骤:
1. 获取服务器端的证书文件
可以使用浏览器打开服务器网站页面,然后导出证书文件,假设导出的证书文件为test.crt 。
2. 生成keystore文件
利用keytool生成密钥文件keystore:
keytool -importcert -noprompt -trustcacerts -alias test -file test.cer -keystore ~/mykeystore
这里会要求设置口令,设置后请记住口令 。
3. 导入证书到Java运行时环境
将证书导入jre/lib/security/cacerts:
keytool -importkeystore -srckeystore ~/keystore -destkeystore [path_to_jre]/lib/security/cacerts
会要求输入目标密钥库口令(也就是jre/lib/security/cacerts 的口令,默认是changeit或者changeme),以及源密钥库口令(之前设置的口令).
最后会显示是否导入成功。如果成功则重启Java程序。
0 0
- Java https服务器证书认证问题解决方案
- Java https服务器证书认证问题解决方案
- Android Https证书认证
- OpenSSL创建客户端、服务器证书,ios双向https认证
- Tomcat服务器配置https认证(使用keytool生成证书)
- Java https服务器认证问题的解决方法
- Https的认证证书简介
- libcurl使用认证证书 https认证
- libcurl使用认证证书 https认证
- Tomcat服务器配置https双向认证(使用keytool生成证书)
- Tomcat服务器配置https双向认证(使用keytool生成证书)
- iOS 9 Https问题解决方案
- Qt 与java服务器的双向认证https通信
- keytool+tomcat配置HTTPS双向证书认证
- keytool+tomcat配置HTTPS双向证书认证
- keytool+tomcat配置HTTPS双向证书认证
- keytool+tomcat配置HTTPS双向证书认证
- Tomcat7 配置Https双向证书认证
- 基于Android 4.4 开发的多窗口系统 开放源码
- iOS,单例
- 抄板PCB,好麻烦!
- 关于日期的js相关操作
- String与StringBuffer的区别
- Java https服务器证书认证问题解决方案
- mybatis实战教程(mybatis in action),mybatis入门到精通
- Swift - 修改导航栏“返回”按钮文字,图标
- POJO类的创建
- Android酷炫实用的开源框架(UI框架)
- js倒计时代码 适合于本月促销-倒计时代码
- 数组准换成List,删除元素时出错
- spring-data-jpa 使用方法
- iOS代理-成长记