JDK-8259640 : Release Note: Disable SHA-1 JARs
  • Type: Sub-task
  • Component: security-libs
  • Sub-Component: java.security
  • Affected Version:
    7u311,8u301,11.0.12-oracle,16.0.2,17 7u311,8u301,11.0.12-oracle,16.0.2,17
  • Priority: P3
  • Status: Closed
  • Resolution: Delivered
  • Submitted: 2021-01-12
  • Updated: 2022-06-24
  • Resolved: 2021-12-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 16 JDK 17 JDK 7 JDK 8
11.0.12-oracleResolved 16.0.2Resolved 17Resolved 7u311Resolved 8u301Resolved
Description
JARs signed with SHA-1 algorithms are now restricted by default and treated as if they were unsigned. This applies to the algorithms used to digest, sign, and optionally timestamp the JAR. It also applies to the signature and digest algorithms of the certificates in the certificate chain of the code signer and the Timestamp Authority, and any CRLs or OCSP responses that are used to verify if those certificates have been revoked.

In order to reduce the compatibility risk for applications that have been previously timestamped or use private CAs, there are two exceptions to this policy:

- Any JAR signed with SHA-1 algorithms and timestamped prior to January 01, 2019 will not be restricted.
- Any JAR signed with a SHA-1 certificate that does not chain back to a Root CA included by default in the JDK `cacerts` keystore will not be restricted.

These exceptions may be removed in a future JDK release.

Users can, at their own risk, remove these restrictions by modifying the `java.security` configuration file (or overriding it using the `java.security.properties` system property) and removing "SHA1 jdkCA & usage SignedJAR & denyAfter 2019-01-01" from the `jdk.certpath.disabledAlgorithms` security property and "SHA1 jdkCA & denyAfter 2019-01-01" from the `jdk.jar.disabledAlgorithms` security property.