为什么(非浏览器)客户端有时不信任有效的签名证书?

为什么(非浏览器)客户端有时不信任有效的签名证书?

这是一个有点典型的问题...我希望没问题。

在我的工作中,我经常会遇到这样的情况:在 Linux 服务器上运行的客户端(通常是 Java 应用程序)不信任有效的签名证书(即浏览器信任的证书)。我们通常的快速解决方法是将证书添加到 Java cacerts 信任存储区,但我不知道为什么需要这样做。

据我了解,有两种可能性:

  1. 服务器端没有按正确的顺序发送完整链(最终实体证书 + 中间证书),并且客户端不信任中间证书(可能是因为它太旧了)。
  2. 客户端信任库不包含用作信任锚的根证书(可能是因为它太旧了)。

这是真的吗?如果是这样,那么强制信任最终实体证书的其他可能性似乎是:

  • 配置服务器应用程序以发送完整链。
  • 将客户端(例如 Java)升级到较新的版本。就我而言,通常可以使用的 Java 主版本受软件先决条件限制,但也许每个次要版本都包含更新的信任存储?

如有任何澄清想法我将不胜感激。

相关内容