临时 - 无法找到请求目标的有效认证路径

问题描述

我们正在从 Spring 应用程序进行 graphQL 调用。我们收到以下证书异常。

我们针对我们管理的不同 Shopify 用户(每个用户都由一个商店 ID 标识)进行此调用。 graphQL 调用上的域将因用户而异(即,我们将在 URL 上有商店 ID)。对于某些商店(某些域),我们收到以下证书例外。但是证书是所有域通用的。一段时间后,对于我们遇到此问题的同一个域,此异常不再发生。

sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径

如果它是永久性的,我可以将证书信息更新为 java。但这仅发生在特定呼叫和特定时间段内。然后它开始为失败的域正常工作。

解决方法

我们在系统中添加了警报,以便在发生此故障时立即在本地尝试域。然后我们在 postman 中复制了这个问题,并通过编写一段代码来重现 java 网络调用并检查日志。在 postman 上,我们得到了重定向的响应。

openDNS 部署在我们的组织中,作为我们网络的附加安全层。正如我在问题描述中所提到的,每个用户的部分域都会发生变化。如果 openDNS 根据其策略未在受信任域中找到某些域并被阻止 48 小时,则它会将某些域视为威胁。 openDNS 正在响应来自 openDNS 服务器的阻止消息,它将拥有 java 中不存在的 openDNS 证书,导致证书异常。

所以,我们看到这个失败只持续了 48 小时,然后它被 openDNS 允许了。

未更改的部分域在 openDNS 上配置为信任域来解决此问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...