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):是一个先进后出的数据结构,通常用于保存方法(函 ...
最新文章
- 无法访问http,会强制跳到https
- 使用SAX解析XML文件
- Kotlin中?和!!的区别
- Android隐藏标题栏,全屏显示
- java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion
- STM32+华为云IoTDA,带你设计一个属于自己的动态密码锁
- Python输出当前时间
- 企业实战(2) 项目环境搭建之Tomcat部署
- java疯狂讲义笔记整理(第二版第一部分)
- hdu 2844 Coins (多重背包+二进制优化)
- 例4.7 素数 - 九度教程第51题(素数筛法)
- 解决Iframe嵌入帆软BI系统后,Chrome升级后跨域出现登录界面,Cookie写入不成功。解决办法
- 计算机重装操作系统的软件,重装系统后的装机必备软件电脑推荐
- 文献阅读—A detection algorithm for cherry fruits based on the improved YOLO-v4 model
- 如何将 elasticsearch 版本从 openshift-logging 4.2.36 降级到 v4.2.29
- Win系统 - WIN10 更新后蓝牙音箱无法连接成 Stereo 模式(立体声)
- React: onRef 和 ref
- 6.4 深度负反馈放大电路放大倍数的分析
- android 高通分区表,高通msm8994平台的NV到底是储存在哪个分区?
- 总结DES、3DES、AES、SM加密算法
热门文章
- 程序员最喜欢说的几句口头禅!一张嘴就知道你是青铜还是王者!
- Android开发 8.0及以上调用相机/相册,并根据Uri获取图像绝对路径,并进行文件上传
- 直播系统开发:直播行业进入多元化的发展方向
- 统计学习方法 | K 近邻法
- 制作一个简易的ATM取款机
- 自己收藏的高德地图批量标点获取坐标工具
- Java/1 - 7章
- android textview ellipsize汉字数字混合,Android TextView属性ellipsize多行失效的解决思路...
- 网络安全再成央视3·15主角,安全手机变身“香饽
- Android插件化