KrakenKey is live with free and paid plans. Issue your first TLS certificate in minutes.

The clientAuth EKU Is Gone from Public TLS Intermediates

pkitlsekudigicertchromemtlscertificates

Sectigo stopped issuing TLS certificates with the clientAuth extended key usage on May 15, 2026. DigiCert did the same, and also revoked its multi-purpose G2 and G3 intermediate CAs the same day, replacing them with dedicated serverAuth-only intermediates. Both moves are driven by Chrome Root Program Policy v1.8, which requires any new subordinate CA disclosed to the CCADB on or after June 15, 2026 to assert only id-kp-serverAuth. If you are using public TLS certificates to authenticate clients, either the certificates already stopped working, or they will when they next renew.

What changed

Chrome Root Program Policy v1.8, published February 5, 2026, sets a two-phase enforcement schedule:

DigiCert acted ahead of both deadlines. On May 15, it revoked DigiCert Global CA G2, its primary public TLS multi-purpose intermediate, along with several G3 code signing and S/MIME intermediates. Replacement intermediates are dedicated-use: DigiCert Global G2 TLS RSA SHA256 2020 CA1 for TLS, separate chains for S/MIME and code signing. Any certificate issued after May 15 from a DigiCert public TLS hierarchy comes from one of those replacement intermediates. Sectigo enforced the same hard cutoff on leaf certificates the same day.

Let’s Encrypt completed the same structural change with its Generation Y intermediates earlier this month (covered previously): the YE and YR intermediates carry only serverAuth.

Why it matters operationally

Any system using public CA certificates for TLS client authentication is now operating against an expiring window. Certificates with clientAuth issued before May 15 from multi-purpose intermediates remain valid until expiry. The break happens on the next renewal: the replacement certificate will not have clientAuth, and any component that requires it for authentication will fail on the subsequent handshake.

The affected use cases:

The failure mode is silent on renewal rather than at issuance, which is what makes it operationally dangerous. If your automation renews certificates without post-renewal validation of the resulting certificate’s properties, you won’t know until something stops authenticating.

Auditing your certificates

Check whether your end-entity certificates or intermediates still carry clientAuth:

# Check the leaf certificate served by a host
echo | openssl s_client -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -ext extendedKeyUsage

# Before May 15 renewal (from multi-purpose intermediate):
# X509v3 Extended Key Usage:
#     TLS Web Server Authentication, TLS Web Client Authentication

# After renewal (from dedicated TLS intermediate):
# X509v3 Extended Key Usage:
#     TLS Web Server Authentication

For client certificate files:

# Check a stored client certificate for clientAuth EKU
openssl x509 -in client.crt -noout -ext extendedKeyUsage

To inspect the intermediate that issued your certificate:

# Extract and inspect the intermediate (second cert in the chain)
echo | openssl s_client -connect example.com:443 -showcerts 2>/dev/null \
  | awk '/-----BEGIN CERTIFICATE-----/{c++} c==2{print} /-----END CERTIFICATE-----/ && c==2{exit}' \
  | openssl x509 -noout -subject -ext extendedKeyUsage

Before/after for the DigiCert intermediate:

# DigiCert Global CA G2 (revoked May 15, 2026)
X509v3 Extended Key Usage:
    TLS Web Server Authentication, TLS Web Client Authentication

# DigiCert Global G2 TLS RSA SHA256 2020 CA1 (replacement)
X509v3 Extended Key Usage:
    TLS Web Server Authentication

Migrating client authentication to private PKI

Public CA certificates were never architecturally suited for client authentication at scale. The enforcement just makes the limitation explicit and removes the ability to continue using them even in degraded configurations.

For operators who need to migrate:

KrakenKey

KrakenKey issues through Let’s Encrypt. Let’s Encrypt’s Generation Y intermediates, now serving all ACME profiles, carry only serverAuth. If you were using KrakenKey-issued certificates for mutual TLS client authentication, that path has already closed with the Generation Y transition. This does not change anything in KrakenKey’s issuance flow, but operators running any public CA for client auth need a migration plan before the current certificate generation expires. The June 15 Chrome CCADB deadline means no public CA will be disclosing new multi-purpose intermediates going forward.