Java https服务器证书认证问题解决方案
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程序。
Java https服务器证书认证问题解决方案相关推荐
- java实现https免证书认证
java实现https免证书认证 解决方法: 1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用. 2.调用类代码: String httpO ...
- 微信支付HTTPS服务器证书验证(PHP)
PHP代码验证是否包含CA证书 如果无法通过验证,请点击连接查看官方操作,安装相应的ca证书即可 # test_wechat_ca.php <?php $data = array('mch_id ...
- 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...
转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...
- 北京数字认证股份有限公司-数字证书认证管理解决方案
数字证书认证管理解决方案 refurl:http://www.bjca.org.cn/solutions/zsszzsgl 一.方案背景 加强以密码技术为基础的信息保护和网络信任体系,规范和加强 ...
- java https 验证客户端证书_Java HTTPS客户端证书认证
小编典典 终于设法解决了所有问题,所以我会回答我自己的问题.这些是我用来解决特定问题的设置/文件: 该客户端的密钥库是一个PKCS#12格式文件包含 客户端的公共证书(在这种情况下,由自签名CA签名) ...
- OpenSSL创建HTTPS的证书认证
一.HTTPS的证书 HTTPS是HTTP+TLS结合的产物. HTTPS利用TLS可以完成: ①身份认证(防止冒充身份) ②加密数据(防止监听到数据) ③保证信息的完整性(防止信息的篡改) 而HTT ...
- Tomcat7 配置Https双向证书认证
下午闲来无事,发现了yale 的cas,继而发现要用到tomcat的https,通过网上找的资料和自己实践所的,写下此篇文章以留记录查看 第一步:为服务器生成证书 win+r 输入cmd进入控制台, ...
- https及证书认证
一.HTTPS通讯原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证. 最初由Netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法. 二.SSL协议通信过程 1. ...
- java https请求 证书_java发https请求,证书配置
配证书: Getting Tomcat SSL (https) Working 1.Create a certificate keystore containing ...
最新文章
- python完全新手教程-Python完全新手教程
- mysql的瓶颈_MySQL瓶颈分析与优化
- mysql 学生成绩等级_JSP+SSM+Mysql实现的学生成绩管理系统
- 2021湖北高考成绩查询热线,湖北招生考试网:2021年湖北高考成绩查询入口、查分系统...
- jquery 页面自动滚动到顶部
- 从JUnit4迁移到JUnit5:重要的区别和好处
- 80后的我,记忆里和吃有关的那些事
- swift [Application] The app delegate must implement the window property if it wants to use a main 报错
- 搭建云服务器简单流程【华为云服务器】
- 这些微信头像,你敢换吗?
- “智多星”智能手机销售网后台管理系统设计
- 如何清除(登录)缓存
- 2020有道翻译 使用付费api
- html手抄报怎么制作软件,电子手抄报制作软件
- element-table表格分页多选
- VSTO 部署安装的两种方法
- android 闹钟不响,为什么我写的Android闹钟到时间时却不会响
- Markdown图片居中、文字居中
- 2021-12-3 温故而知新-JavaScript隐式转换
- 【论文】Believe It or Not, We Know What You Are Looking at! 阅读笔记
热门文章
- GLC - 实现 glog 日志清理
- henauOJ1057(走向人生巅峰)
- 一元线性回归利用最小二乘法求解原理代码及案例
- JS--JavaScript焦点处理(获取焦点focus、失去焦点blur)
- 统计各个部门员工薪水总和 Hadoop
- 静态服务器--动态页面 (python)
- 腾讯云联合微信推出云开发 2.0 平台,低代码“微搭”升级
- vivo2020届春季校园招聘在线编程考试--[编程题]vivo智能手机产能
- 知识付费平台有几种?现在怎么运作的?
- 怀化职业技术学院计算机,怀化职业技术学院计算机网络技术专业人才培养方案.doc...