Java 14 javax.net.ssl.SSLException 仅在某些具有相同 cacerts 文件的计算机上发生

问题描述

我有一个 Java 14 应用程序,其中一些计算机在尝试访问 https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_1p00.pl 时抛出 javax.net.ssl.SSLHandshakeException 或 javax.net.ssl.SSLException。它对我来说很好用,所有计算机都使用相同的 Windows 10 jre(我用 jlink 构建)和来自 OpenJDK 14 的相同 cacerts。由于我没有这个问题,我无法重现和调试。我曾尝试让用户更换其中一台计算机上的 cacerts,但没有任何区别。此外,将相同的 URL 直接粘贴到 Chrome 中也有效。我还没有尝试从 Windows 导出证书并重新导入到 cacerts,因为我的 cacerts 可以工作,我看不出这会有什么不同,除非每个 cacerts 都是特定于计算机的,从修改日期开始似乎并非如此。

有关可能导致此问题的原因以及 Java 引发异常的原因的任何想法。

解决方法

解决了。特定用户没有更新 jre,只更新了 jar 文件,并且缺少 jdk.crypto 模块。