现在限制了使用 SHA-1 算法签名的 JAR

在 Java SE 17 中,缺省情况下,现在限制了使用 SHA-1 算法签名的 JAR,并将其视为未签名。这适用于可对 JAR 提取摘要、签名和(可选)添加时间戳记的算法。它还适用于代码签署者和时间戳记权限的证书链中证书的签名和摘要算法,以及用于验证是否已撤销这些证书的任何 CRL 或 OCSP 响应。

为了降低先前添加了时间戳记的应用程序的兼容性风险或者要使用专用 CA,此策略存在以下两个例外:

在未来的 JDK 发行版中可能会移除这些例外。

SHA-1 不再被认为是安全的,因此不应使用此算法。用户可以自担风险,通过修改 java.security 配置文件(或者使用 java.security.properties 系统属性覆盖此文件)并从 jdk.certpath.disabledAlgorithms 安全属性中移除 SHA1 jdkCA& usage SignedJAR & denyAfter 2019-01-01 以及从 jdk.jar.disabledAlgorithms 安全属性中移除 SHA1 jdkCA & denyAfter 2019-01-01 来消除这些限制。

有关此限制的更多信息,请参阅 Disable SHA-1 Signed JARs