服务器中的 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 发送到日志或标准输出的内容,然后您才能看到它。
我有两个 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 发送到日志或标准输出的内容,然后您才能看到它。