如何按需启用 javax.net.debug

2024-01-08

我们的应用程序使用 Apache HttpClient 4.5.3,我们观察到客户端和服务器之间使用 SNI 功能进行通信的非常奇怪的行为

服务器配置为如果 SSL 请求带有我们客户端期望的服务器名称(即:服务器的主机名),则返回 GoDaddy 签名证书,并且它将返回所有其他域名的自签名证书

观察到的行为

  • 客户端在除我们的生产机器上之外的所有服务器上收到正确的服务器证书
  • 客户端代码正在 Tomcat 8 上部署的应用程序中运行,我们注意到对端点的初始请求成功通过。运行一段时间后,我们在客户端收到 SSL 异常。
  • 该错误是因为服务器没有发送正确的证书(它发送默认的自签名证书)
  • 如果我们重新启动部署了客户端的 tomcat 服务器,调用将再次开始成功进行。

我们过去曾使用 javax.net.debug 进行调试,但在这种情况下我们不能使用它,因为我们需要重新启动 tomcat 服务器才能使其生效,并且当我们重新启动 tomcat 服务器时,对端点服务器的调用开始成功。 此外,javax.net.debug 会记录大量信息,这些信息会淹没我们的日志,因此我们希望仅针对特定请求启用它。 我们希望仅记录 Client Hello(其中包含传递给端点的 server_name)

我已读完https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#OwnX509ETM https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#OwnX509ETM但不确定我们可以使用什么来仅打印推送到服务器的 SSL 服务器名称指示符。


我和你有同样的担忧,然后首先我正在考虑动态添加环境变量,但它总是采用旧值。然后我发现javax.net.debug环境变量仅在静态块中读取一次SSLSocketFactory.java。完整的源代码可用here http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/javax/net/ssl/SSLSocketFactory.java/.

static {
     String s = java.security.AccessController.doPrivileged(
         new GetPropertyAction("javax.net.debug", "")).toLowerCase(Locale.ENGLISH);
     DEBUG = s.contains("all") || s.contains("ssl");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按需启用 javax.net.debug 的相关文章

  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 如何使用jetty建立2路SSL认证连接

    我想使用 2 路 ssl 连接器创建一个 servlet 我创建test2wayssl jks并发起SSL 选择通道连接器当我从邮递员发送请求时客户证书 邮递员的回应是 连接 127 0 0 1 29226 2wayssl 时出错 下面是我
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 经典 asp 中的 WinHttp TLS 连接

    我正在尝试将付款数据发送到 SagePay 由于他们关闭了 SSL 因此需要使用 TLS 发送数据 我的代码如下 set httpRequest Server CreateObject WinHttp WinHttprequest 5 1
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 能让代码分析理解代码契约吗?

    当组合使用代码分析和代码契约时 我收到很多警告 例如 CA1062 http msdn microsoft com en us library ms182182 aspx Microsoft Design 在外部可见的方法 Foo Bar
  • ggmap,使用 coord_cartesian 将所有点推向北方

    正如标题所说 当我添加时coord cartesian到我的 ggmap 它将我所有的点都向上移动 这是一些数据 pricedata lt structure list nodename c CIN WABRIVR 2 CIN WHEATC
  • Julia v0.6 函数内部宏

    有人可以解决我遇到的这个宏错误吗 它只在版本 0 6 中开始发生 mutable struct Foo x Int end macro test myfoo quoteblock quote myfoo x 1 end return quo
  • 如何从另一个数据框中获取值的行列名称

    给定一个范围表 start end name blue green yellow purple a 1 5 654 678 11 15 b 88761 88776 c 1211 1215 38 47 d 89 95 1567 1578 和一
  • 处理 twitter chill 中的案例类(Scala 到 Kryo 的接口)?

    Twitter chill 看起来是一个很好的解决方案 可以解决如何在 Scala 中高效序列化而不需要过多的样板文件的问题 但是 我没有看到任何证据表明他们如何处理案例类别 这是自动工作还是需要做一些事情 例如创建一个零参数构造函数 我有
  • 尝试调用不存在的方法, mongo-java-driver , mongobee

    我正在使用 MongoBee 进行迁移 但出现异常mongoTemplate insertAll 机场 ChangeLog order 001 public class DbChangeLog001 ChangeSet order 001
  • React Navigation V5 有没有办法链接导航?

    假设我有屏幕 A B C 是否可以在屏幕 A 中编写代码从 A 导航到 B 然后立即导航到 C use dispatch https reactnavigation org docs navigation prop dispatch wit
  • Windows Media Player Control (winforms) - 将当前帧捕获为位图?

    我在 winforms 应用程序中使用 Windows Media Player 控件 我想定期将播放帧捕获到位图中并将其保存在本地 WMP 是否会暴露当前播放帧 当然 WMP 库应该公开当前帧 但我已经到处寻找它但无济于事 请帮助 附注我
  • C 中的面向对象

    一组漂亮的预处理器 hack 兼容 ANSI C89 ISO C90 可以在 C 中实现某种丑陋 但可用 面向对象的功能是什么 我熟悉几种不同的面向对象语言 因此请不要回复 学习 C 之类的答案 我读过了 使用 ANSI C 进行面向对象编
  • PHP PDO 事务复制

    我有一个游戏网站 我想更新用户的钱 但是如果我同时使用 2 台电脑 此代码将执行两次 用户将剩下负钱 我怎样才能阻止这种情况发生 这让我疯狂 db getDB sql UPDATE users SET money money money W
  • 如何将 npm 参数传递给 dotnetpublish?

    长话短说 私有 npm 注册表 企业网络 无法从 github 下载 我需要通过 no optional to the npm install that dotnet publish 作为一部分执行 Target PublishRunWeb
  • 在 ajaxSuccess 期间确定响应是否为 JSON 的理想方法

    在我的 ajaxSucess 函数中 我需要查明响应是否为 json 目前我正在这样做 body ajaxSuccess function evt xhr settings var contType xhr getAllResponseHe
  • 在 Internet Explorer 中运行本地“Javascript Dependant”HTML 文件

    当您使用 Internet Explorer 打开本地 HTML 文件 包含 Javascript 时 会出现一条消息 Internet Explorer restricted this webpage from running scrip
  • 该领域已处于写入事务中

    该领域已处于写入事务中 我怎样才能避免这个错误 有没有办法检查领域是否处于写入牵引状态 如果领域处于写事务中 则先关闭 然后再执行其他工作 现在 在收到此错误后 该领域已处于写入事务中 那么与领域相关的其他任务也无法正常工作 这是我遇到的一
  • 什么决定了 System.Net.IPAddress.ToString() 的 IPv6 地址格式?

    内置 Net 方法 System Net IPAddress ToString 对于 IPv6 地址的行为不一致 给定字节数组0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 在某些环境下 aaaa aaaa aaaa
  • 如何更改 localStorage 项中的单个值?

    我有一组已保存的项目 但我试图在检索它之后并将其传递给我的 php 函数之前更改一个值 是否可以只更改一项 我的项目串如下所示 var args window localStorage getItem localusers start 0
  • 动画 SVG 路径填充自下而上

    我有一个带有多个路径的 SVG 我正在尝试对其填充进行动画处理 我的目标是制作一个动画 从下到上缓慢地填充每个路径中不同颜色的颜色 我尝试过使用线性渐变 但不知道如何将它与路径一起使用 我创建了以下 SVG https jsfiddle n
  • 如何重用带参数的 SQL 片段?

    我打算制作一个片段以便与参数一起重用
  • Visual Studio 中的项目目录结构丢失了?

    我正在学习 Visual Studio 2015 社区 我是一位经验丰富的程序员 但刚接触 VS 文件表示方式让我感到困惑 我创建了一个解决方案 并添加了一个现有项目 VS 正在向我显示所有项目文件 在我的例子中是一个 C 项目 所以 c
  • 如何按需启用 javax.net.debug

    我们的应用程序使用 Apache HttpClient 4 5 3 我们观察到客户端和服务器之间使用 SNI 功能进行通信的非常奇怪的行为 服务器配置为如果 SSL 请求带有我们客户端期望的服务器名称 即 服务器的主机名 则返回 GoDad