Skip to content
ecdsa.com

Extended key usage (EKU)

The X.509 extension (OID 2.5.29.37) listing the application purposes a certificate's key may serve, such as id-kp-serverAuth, id-kp-clientAuth, id-kp-codeSigning or id-kp-emailProtection.
Also written asEKUextendedKeyUsageserverAuthclientAuth

Common purpose OIDs (RFC 5280 §4.2.1.12): 1.3.6.1.5.5.7.3.1 serverAuth, …3.2 clientAuth, …3.3 codeSigning, …3.4 emailProtection, …3.8 timeStamping, …3.9 OCSPSigning. Many verifiers treat an EKU in an intermediate as a constraint on everything below it, which is how root programs keep TLS, S/MIME and code-signing hierarchies separate.

Public TLS is moving to single-purpose hierarchies. The Chrome Root Program Policy (version 1.8) requires subscriber certificates issued on or after 15 March 2027 to assert only id-kp-serverAuth, and subordinate CAs disclosed from 15 June 2026 likewise; major CAs stopped adding clientAuth to TLS certificates in 2026. Services that used public TLS certificates as mTLS client certificates need a private CA.

A missing or wrong EKU produces errors such as Go's x509: certificate specifies an incompatible key usage or OpenSSL's unsupported certificate purpose.

Standards and references

All terms