java - 如何修复 httpclient tls unknow_certificate 错误?
问题描述
我们的客户端使用 httpclient 4.5.2 与服务器通信,并使用 TLS 1.2 实现端到端通信安全。
一开始客户端和服务器之间的通信很顺畅,但是最近客户端和服务器之间的通信出现了问题。这似乎是由于偶尔发生的 ssl 握手的服务器问候期间的一些未知证书错误引起的。
我检查了客户端信任库中的证书,并从服务器中找到了证书。然后我打开 ssl 调试使用System.setProperty("javax.net.debug", "ssl");
,发现来自 ssl 握手的服务器 hello 的证书不是加载到我的客户端信任库的正确证书。
随后,我使用 tcpdump 捕获客户端和服务器之间的通信信息,发现服务器发送的证书是正确的,它已加载到我的客户端信任存储中,但我的客户端读取的证书是错误的。奇怪的是,我无法追踪错误证书的来源。我已经尝试了多种变体,但它们似乎都不起作用。任何帮助,将不胜感激。
解决方案
推荐阅读
- html - 背景附件会破坏手机上的网站
- c++ - macOS:在其套接字上调用 fd_set 后 DNSSD 崩溃
- javascript - 有什么方法可以知道表单输入在 Worldpay 模板表单中是否有效?
- kotlin - 如何使用 mockk 来验证成员函数是否被调用?
- firebase - 如何在所有快照中获取具有特定 ID 的所有 Firestore 文档?
- android - 从内部的圆形线性布局
- node.js - 从 mongoDB 集合中删除一个字段
- azure - az 使用变量更新服务端点
- github-api - repos/{org}/{repo}/git/trees/{sha} 查询 repo 中的文件返回 type=commit 的元素 - 如何处理?
- algorithmic-trading - 问题,使用 backtrader 和 btalib 进行回测,这不是我尝试过的操作,如果 sma5>sma10 则想作为订单购买并在 sma5 时出售
from btalib.indicators import sma import pandas as pd import backtrader as bt import os.path #To manage paths import sys # to find