If your organisation uses a public Certificate Authority (CA) to provide their PKI needs, then you should be aware of a change being made to how certificates are being issued with regards to the extended key usage extension. Since the announcement of the change, I’ve received queries on what IBM MQ expects with regards to the X509 certificates it validates during a TLS handshake and what the impact of this change will have on continued business capability.
In this blog post I will outline the change, before talking about what IBM MQ requires, and which customers will be most impacted.
What is the Extended Key Usage extension?
Within X509 certificates there are a variety of extensions that can be added to provide more information to the user or validator of a certificate. For example: endpoints to check the revocation status of the certificate or whether the certificate can be used to issue certificates. These extensions are defined in section 4.2 of RFC5280.
The Extended Key Usage extension, or EKU, is an extension which defines what the certificate can be used for above what is defined in the Key Usage extension. It is defined in section 4.2.1.12. The EKU extension has different values, but the ones of interest here are serverAuth and clientAuth.
A certificate with the serverAuth EKU value can be used by a TLS server during a TLS handshake. Likewise, a certificate with the clientAuth EKU value can be used by a TLS client during a TLS handshake to perform a mutual TLS handshake.
The RFC also makes the following statement:
If the extension is present, then the certificate MUST only be used for one of the purposes indicated.
If a certificate validating program encounters an x509 certificate with the EKU present then it should validate the value of the EKU matches the use of the certificate. If no EKU is present then this validation is not performed.
What is changing?
Up until recently, the various public CAs have been issuing certificates which have an EKU with both the serverAuth and clientAuth values. This would mean that those certificates could be used by a TLS server or TLS client.
However, Google recently updated their Chrome Root Program Policy to disallow the clientAuth value, with plans to block (or not trust by default) CAs who issue certificates with this extension. In response to this change DigiCert, Let’s Encrypt, SSL.COM and other public CAs have announced that they will be no longer issue certificates with that extension from their some, or all of their certificate products. Thus, preventing those certificates issued by public CAs from being used by a TLS client.
This change is coming in two stages. On 1st October 2025 certificates issued by public CAs will not have the clientAuth by default, but it will be possible to request it be added back in. Then from 1st May 2026 the ability to request certificates with the clientAuth value will be removed.
When does IBM MQ validate the EKU?
To provide TLS capability IBM MQ uses cryptographic libraries, these libraries differ by platform and offer different functionality, configurable capabilities and implementations of the various TLS specifications. As such, how MQ is affected by the clientAuth change is dependant on the underlying cryptographic library. The table below shows whether IBM MQ will validate an EKU value, with explanation below.
|
Platform
|
Is the EKU value enforced?
|
|
IBM MQ on Unix, Linux, Windows
|
No
|
|
IBM MQ on IBM i
|
No
|
|
IBM MQ Appliance
|
No
|
|
IBM MQ Containers
|
No
|
|
IBM MQ on IBM Cloud
|
No
|
|
IBM MQ on z/OS
|
Yes, when TLS 1.3 is enabled.
|
|
IBM MQ C Client libraries
|
No
|
|
IBM MQ Unmanaged .NET
|
No
|
|
IBM MQIPT
|
Yes
|
|
IBM MQ Java/JMS client libraries
|
Yes, dependant on JRE configuration
|
MQ on Unix, Linux, Windows, MQ in containers, MQ Appliance, MQ on IBM Cloud Saas, MQ C clients and MQ Unmanaged .NET all perform cryptographic operations using the IBM GSKit cryptographic library. By default, the GSKit cryptographic library does not validate the EKU value even if it is present. Queue managers or C client on these platforms will accept a TLS handshake with mismatching EKU values.
MQ on IBM I uses the IBM i platform cryptographic library SystemTLS. This library is similar to IBM GSKit and has the same behaviour. Queue managers or C client on IBM i will accept a TLS handshake with mismatching EKU values.
MQ on z/OS uses the z/OS platform cryptographic library SystemSSL. This library enforces the EKU value per their documentation (edit 28/10) when TLS 1.3 is enabled, when TLS 1.3 is not enabled SystemSSL validates certificates to the RFC2459 standard which enforces an EKU if it is marked critical. If an EKU is present it must contain a valid usage value for the certificate. Queue managers on z/OS will reject a TLS handshake with mismatching EKU values.
MQIPT uses the JRE supplied with it to perform TLS handshakes. The default configuration and how MQIPT configures the JRE means that MQIPT enforces the EKU value. If an EKU is present it must contain a valid usage value for the certificate. MQIPT instances will reject a TLS handshake with mismatching EKU values.
Java/JMS clients use a JRE to perform TLS handshakes. Whether the JRE enforces the EKU value depends on the Java TrustManager being used. The IBM MQ client library will use the default TrustManager for the JRE. Whether Java/JMS clients will accept or reject a TLS handshake with mismatching EKU values is dependant on the behaviour of the JREs configured default TrustManager. Update 26/09/2025: The default TrustManager for IBM MQ Clients will reject a TLS handshake with mismatching EKU values if the certificate being validated is not a TrustAnchor (i.e. is a CA issued certificate). Therefore, If an EKU is present it must contain a valid usage value for the certificate.
Which users are affected by this change?
From the above information the following IBM MQ users who meet all the points below will be affected by this change and will need to act:
- Customers using certificates issued by a public Certificate Authority like DigiCert.
- Customers who use mutual TLS for authentication.
- Customers who are either:
- Connecting to or from queue managers on z/OS
- Connecting through IBM MQIPT.
- Using a Java/JMS application where the JREs default TrustManager enforces the EKU.
What actions can you take?
If you are concerned that you will be affected by this change then you will need to act.
Review the public Certificate authorities change notification documentation for their recommendations or alternatives and plan migrating to alternatives prior to the May 2026 deadline.
Ensure that your certificate request process is updated so from 1st October 2025 the clientAuth EKU value is explicitly requested.
Conclusion
This blog post hopefully provides the information you need to decide whether your organisation is impacted by this upcoming change.