Try Post-Quantum TLS Today: OpenSSL 3.5, Browsers and Cloudflare Test Pages

Updated | 5 min read | QUANTUM (QNT) community

What you can actually test

The part of TLS that is already post-quantum in the real world is key agreement, the step that protects traffic from being recorded now and decrypted later (see harvest now, decrypt later). Certificates and signatures are a separate and slower migration, covered in post-quantum certificates and PKI. So when you "try post-quantum TLS today", you are testing a hybrid of classical X25519 and ML-KEM-768, usually called X25519MLKEM768. The design idea is explained in hybrid key exchange in TLS: an attacker has to break both halves.

Names and numbers to know

The hybrid is specified in RFC 10024, a Proposed Standard published in August 2026. It lists X25519MLKEM768 with codepoint 4588 (0x11EC) as recommended, and two other hybrids, SecP256r1MLKEM768 and SecP384r1MLKEM1024, as not recommended by default. The client's key share for X25519MLKEM768 is 1,216 bytes (1,184 for ML-KEM-768 plus 32 for X25519). That is why a ClientHello can grow past one network packet, and why old middleboxes sometimes misbehave.

OpenSSL 3.5

OpenSSL 3.5.0 was released on 8 April 2025 and is a Long Term Support line (the release notes page I read does not say so; check the OpenSSL release policy). Its release notes say it adds ML-KEM, ML-DSA and SLH-DSA, and that the default TLS group list now includes and prefers hybrid post-quantum groups. By default a TLS 1.3 client sends two key shares, X25519MLKEM768 and X25519. Cloudflare's support table also lists SecP256r1MLKEM768 and curveSM2MLKEM768 from OpenSSL 3.6.0. If you relied on legacy groups, check your configured group list after upgrading, because the defaults changed.

A command line test

With OpenSSL 3.5 or later, this asks for the hybrid group and prints the negotiated one. The output line below comes from third-party notes and a GnuTLS developer report, and I could not run it with OpenSSL 3.5 for this page. I did run a control with the OpenSSL 3.0 client installed here: it connected with -groups X25519 but printed Server Temp Key instead of the Negotiated TLS1.3 group line, and it refused X25519MLKEM768 outright, so an older client cannot test this. Confirm the command on your own 3.5 or later build:

echo | openssl s_client -connect HOST:443 -tls1_3 -groups X25519MLKEM768 2>/dev/null | grep -iE "Negotiated TLS1.3 group|Server Temp Key"

If the line shows X25519MLKEM768, the handshake used the hybrid. The OpenSSL 3.5 manual page for s_client only points to SSL_CONF_cmd for the -groups option and does not document this output line, so treat the exact wording as version dependent. Run a control with the group set to X25519 so you know the command itself works. Remember the result shows what the server chose, so a server that does not support the hybrid will fall back or fail. CVE-2026-2673 (published March 13, 2026) affects OpenSSL TLS 1.3 servers whose group list uses the DEFAULT keyword: a less preferred group may be chosen even when a preferred one is supported by both sides, which can happen with the new hybrid groups. The record lists 3.5.0 up to but not including 3.5.6, and 3.6.0 up to but not including 3.6.2, as affected, so patch level matters.

Browsers

Cloudflare's docs list default hybrid key agreement in Chrome 131 and later, Edge 131 and later, Brave 1.73.86 and later, Opera 116 and later, Firefox 132 and later on desktop (145 and later on Android), Tor Browser 15 and later, and Safari 26 and later (iOS 26 and macOS Tahoe 26). Because it is on by default, you normally need no flag. To check, open Cloudflare's Radar browser support check or the Cloudflare Research test page, which lists X25519MLKEM768 as recommended. If your test reports no support, update the browser first before hunting for flags.

Go, Java, Node and others

StackReported status
GoX25519MLKEM768 on by default in crypto/tls from Go 1.24 when CurvePreferences is nil. Setting the GODEBUG value tlsmlkem=0 turns it off, which the release notes suggest for buggy servers that cannot handle large records.
JavaJEP 527 delivers hybrid groups for TLS 1.3 in JDK 27, with X25519MLKEM768 first in the default client list.
Node.jsDefault key agreement in 24.5.0 and later, and 22.20.0 and later.
rustlsEnabled by default since 0.23.27.
ServersNGINX when built with OpenSSL 3.5 or later; Caddy by default from 2.10.0; Traefik from 3.4.2.

Gotchas when you turn it on

Why bother

Cloudflare reported that by late October 2025 the majority of human-initiated traffic to it used post-quantum encryption, and that only about 3.7% of origins supported X25519MLKEM768 in 2025. So the browser half is largely done and the server and origin half is where developers still have work. For the wider picture see the Cloudflare, Google and Apple rollout and the company migration checklist.

Sources and further reading

Reported as of 2026-10-09. Library versions, defaults and standards status change often, so check the primary documents and test on your own stack before relying on anything here. Nothing here is financial advice or a security audit. The QNT memecoin is independent of Quantinuum Ltd, the real company, and of every project, library, lab and chain named on this page.

Frequently asked questions

Do I need a browser flag to use post-quantum TLS?

Usually not. Cloudflare's docs list hybrid key agreement as on by default in current Chrome, Edge, Firefox and Safari releases. Update the browser and test with Cloudflare's tools.

Does post-quantum key agreement make my whole connection quantum-safe?

No. It protects the session key against later decryption. Certificates and signatures are still classical on the public web today.

Which group name should I look for?

X25519MLKEM768, a hybrid of X25519 and ML-KEM-768.

Could enabling it break my network?

Occasionally. The hybrid key share is 1,216 bytes, which can trip old middleboxes. Test in staging and keep a rollback.

Share on X

Keep reading

All Quantum computing guides | Back to top | Search the site

Main pages: Quantum computing explained | Quantum and crypto | Companies | Quantum news | Glossary

QUANTUM (QNT) is the quantum sector memecoin on Solana. See the live chart, buys and burnt supply or read the token facts. Questions? Join the Telegram.