这是一个有点典型的问题...我希望没问题。
在我的工作中,我经常会遇到这样的情况:在 Linux 服务器上运行的客户端(通常是 Java 应用程序)不信任有效的签名证书(即浏览器信任的证书)。我们通常的快速解决方法是将证书添加到 Java cacerts 信任存储区,但我不知道为什么需要这样做。
据我了解,有两种可能性:
- 服务器端没有按正确的顺序发送完整链(最终实体证书 + 中间证书),并且客户端不信任中间证书(可能是因为它太旧了)。
- 客户端信任库不包含用作信任锚的根证书(可能是因为它太旧了)。
这是真的吗?如果是这样,那么强制信任最终实体证书的其他可能性似乎是:
- 配置服务器应用程序以发送完整链。
- 将客户端(例如 Java)升级到较新的版本。就我而言,通常可以使用的 Java 主版本受软件先决条件限制,但也许每个次要版本都包含更新的信任存储?
如有任何澄清想法我将不胜感激。