服务器中的 SSL 证书更改后 HTTPS 请求失败

HTTPS requests failing after SSL certificate change in server

我有两个 java 申请。 Java 应用程序“L”调用由 java 应用程序“D”托管的 REST API。它工作正常,直到“D”的证书过期。我将 CA 从 digicert 更改为 Telia。现在我可以从“L”的日志中看到 API 调用失败而没有任何正确的错误消息。我也看不到“D”日志中的任何错误消息。我怀疑 SSL 级别的故障。所以我尝试使用 curl 从“L”的机器调用 API。 curl 命令能够成功调用 API。所以我对“L”和“D”之间的流量进行了 TCP 转储,我可以看到:

3 5    0.0032   (0.0000)    S>C    Handshake
        ServerHelloDone
3 6    0.0042   (0.0010)    C>S    Alert
      level               fatal
      value               certificate_unknown

我认为“certificate_unknown”意味着“L”无法在新的 Telia 证书链中获取根 CA 文件。我的理解正确吗?但是为什么 curl 命令可以工作呢? java 没有访问系统根 CA 的权限吗?

检查 L 的信任库。它必须包含 D 的当前证书或任何签名机构的证书 - 否则 L 将不相信它正在与预期的 D 通信并停止通信。

L 端应该会抛出异常,但这取决于 L 发送到日志或标准输出的内容,然后您才能看到它。