Skip to main content

Enable post-quantum-resistant TLS key exchange

Scope​

This guide enables post-quantum-resistant TLS key exchange for the Secure Mail HTTPS service. It uses the native ML-KEM support in OpenSSL 3.5.

Minimum operating-system versions:

  • EL9: version 9.7 or later
  • EL10: version 10.1 or later

The configuration uses a hybrid group. A TLS connection therefore combines ML-KEM with a conventional key exchange. Existing RSA or ECDSA HTTPS certificates remain valid and do not need to be replaced.

Prerequisites​

Confirm the operating-system and OpenSSL versions:

cat /etc/redhat-release
openssl version

OpenSSL must report version 3.5 or later.

Back up the Apache TLS configuration:

cp -a /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.before-pqc

In an multi-node installation, make the change only on ACTIVE node. The changes will be synced to PASSIVE node automatically.

Configure Apache​

Edit /etc/httpd/conf.d/ssl.conf.

Ensure that TLS 1.2 and TLS 1.3 are enabled:

SSLProtocol -all +TLSv1.3 +TLSv1.2

Replace the existing SSLOpenSSLConfCmd Curves directive with:

SSLOpenSSLConfCmd Groups X25519MLKEM768:X25519:secp384r1:prime256v1

X25519MLKEM768 is preferred. The conventional groups provide compatibility for clients that do not support ML-KEM.

Validate the configuration and restart Apache:

httpd -t
systemctl restart httpd
systemctl --no-pager --full status httpd

Do not restart Apache if httpd -t reports an error. Restore the backup or correct the configuration first.

Verify the Result​

Run the test with OpenSSL 3.5 or later. Replace mail.example.com with the Secure Mail host name.

Test the hybrid ML-KEM group:

openssl s_client \
-connect mail.example.com:443 \
-servername mail.example.com \
-tls1_3 \
-groups X25519MLKEM768 </dev/null

The connection must complete successfully. Its output should identify X25519MLKEM768 as the negotiated TLS 1.3 group.

Also test the conventional fallback:

openssl s_client \
-connect mail.example.com:443 \
-servername mail.example.com \
-tls1_3 \
-groups X25519 </dev/null

Finally, open the Secure Mail user and administration interfaces in supported browsers and confirm that login and normal use work.

Rollback​

Restore the Apache configuration and restart the service.

cp -a /etc/httpd/conf.d/ssl.conf.before-pqc /etc/httpd/conf.d/ssl.conf
httpd -t
systemctl restart httpd