java证书存放位置_Java中的证书路径发现
我尝试通过Java内置功能为此(HttpURLConnection)建立一个https连接。但是我得到这个异常:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
...
...
我的证书链是:
Root certificate -> Intermediate certificate -> Web server certificate
所使用的证书通过“路径发现”的含义是正确的。信任锚是根证书,该根证书导入到我系统上的Java密钥库中。中间证书不是…但是
中间证书由我信任的根签名-因此,我也信任中间证书。
Web服务器证书已使用我信任的中间证书签名(第1点)
那么验证必须成功通过?我做错什么了吗?
我在某处读到了这个:
浏览器可以执行自动发现,而服务器到服务器则不能。
但是缺少此功能是非常基本的。是否有进行自动发现的明确方法?
* 更新
是的,这就是问题,GPI。我很困惑,因为浏览器可以验证服务器证书,但是Java应用程序不能。该行为的原因是:
服务器仅发送最终证书,而不发送整个证书链;
该证书是最近购买的,并使用相对较新的中间证书进行了签名;
浏览器具有相对最新的证书列表,包括中间证书;
Java具有相对最新的证书列表,并且中间没有证书。
浏览器通过中间证书验证最终证书Java无法检查证书链,因为:1.链未发送;2.最终证书的签署者(中间证书)不是信任锚。
解决方案可以是:
服务器返回整个证书链
要在Java信任库中添加的中间证书
java证书存放位置_Java中的证书路径发现相关推荐
- java 验证码透明背景_Java中的证书透明度验证
java 验证码透明背景 因此,我有一个幼稚的想法,即除了证书有效性检查(在Java中)之外,将证书透明性验证作为每个请求的一部分也很容易. 牺牲了整个周末的一半时间,我可以证明这并不是一件小事. 但 ...
- java变量存储位置_java 中变量存储位置的区别
[原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...
- ansible 建 kubernetes 证书签名请求_Java中的微信支付(2):API V3 微信平台证书的获取与刷新...
1. 前言 在Java 中的微信支付(1):API V3 版本签名详解一文中胖哥讲解了微信支付 V3 版本 API 的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API 证书对参数 ...
- java对数字证书的验证_JAVA对数字证书的常用操作
一:需要包含的包 import java.security.*; import java.io.*; import java.util.*; import java.security.*; impor ...
- java string 对象地址_Java中String对象的存储位置(学习笔记)
packagetest.string.equal;public classMain {/*** 创建了三个对象,"helloworld对象创建在常量池中",每次new String ...
- hashset java 键值对_Java中的各个容器的性能对比
java中个个容器的属性,性能,参数对比: Java容器的性能及属性的对比 List:Vector,ArrayList,LinkedList Vector:内部是数组数据结构,可以理解为加锁的Arra ...
- java static调用吗_Java中的static的使用
1.Java 中被static修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.且优先于对象存在.静态成员可以使用类名直接访问,也可以使用对象名进行访问.使 ...
- java取模负数_JAVA中取模的问题
## Java取模(%)运算 > [上篇文章](https://yebukong.com/article/1101070795486109697.html "上篇文章") 提 ...
- java中有没有栈_Java中堆和栈有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...
最新文章
- 5月23日 JavaScript
- 新获融资1亿,聚焦全栈,云知声背后的AI下半场
- gx works怎么写入from指令_FANUC PMC 指令和应用
- 思卡乐科技发布SR3系列RFID产品
- HPE公司升级其闪存存储产品系列
- spark的三大数据结构
- matlab2c使用c++实现matlab函数系列教程-repmat函数
- 从turtlesim到贪吃蛇……
- 小游戏上传分数是怎么实现的_如何利用微信小游戏做公众号吸粉营销活动
- 一位浙大教授令人寒心的演讲,说出了真话!
- core dumped 错误
- c语言极限方法求e方法,极限值确定函数式中参数的求解方法.pdf
- USB虚拟总线驱动开发扩展之(利用虚拟USB总线驱动实现U盘模拟)
- 高德地图定位失败_高德开放平台
- android文件恢复功能,安卓手机恢复删除文件,如何恢复
- 【ElasticSearch】ELK statck
- 辽河十八汊最牛X男爷们
- 矫形鞋的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 轻量级Kubernetes之k3s:2:使用docker作为容器运行环境
- 【蓝桥杯选拔赛真题02】Scratch守护之盾 少儿编程scratch蓝桥杯选拔赛真题讲解