Cloud Engineer Lab
Cloud Engineer Lab
Cloud Engineer Lab
Cloud Engineer Lab
© 2026
Quantum-Safe PKI: What Happens to Certificates in the Quantum Era?

Quantum-Safe PKI: What Happens to Certificates in the Quantum Era?

Post-quantum certificates, ML-DSA signatures, hybrid certificates, TLS, crypto agility and lifecycle, with a working quantum-safe CA lab and a migration plan.

24 min read
Share

This site has two audiences that rarely meet. One reads the PKI posts: how certificates reach an Intune device, how to build the CA hierarchy, how certificates are renewed and revoked. The other reads the quantum section. This post is where the two meet, because PKI is the part of the quantum migration that takes longest, costs most and breaks most easily.

The previous post introduced the new algorithms and showed that post-quantum key exchange is already live in browsers. Key exchange is the easy half: it's a software upgrade that barely touches your PKI. This post is about the hard half. Every certificate is a public key plus a CA signature, and both are RSA or ECC today. Replacing them means new keys, new CAs, new trust anchors, and every device and server that checks a certificate learning a new algorithm.

So instead of describing it in theory, this post builds a quantum-safe PKI: an ML-DSA root, issuing CA and TLS server certificate, a fully post-quantum TLS 1.3 handshake, a revocation test, and a Windows relying-party test that fails in an instructive way. Every number in this post was measured.

Stage 09 of the learning path

This is the second post in stage 09, Post-Quantum Cryptography, of the Quantum Computing & Technology learning path. It assumes the algorithms from Post-Quantum Cryptography: How Do We Protect the Internet? and the threat from Why Quantum Computers Threaten Today's Encryption. On the PKI side, it builds on the PKI deep dive and the certificate lifecycle post.


The Path From Today's Certificate to Crypto Agility

A tree diagram. PKI, meaning roots, issuing CAs, templates and relying parties, leads to the current certificate, X.509 signed by a CA, which uses RSA or ECC keys in the certificate and in every CA signature. The quantum threat, Shor's algorithm forging signatures, leads to PQC migration with ML-DSA, SLH-DSA and ML-KEM. The migration forks into certificates (new keys and CA signatures), TLS (handshakes and server authentication) and signing (code, firmware and documents), which all merge into crypto agility, highlighted: changing algorithms without rebuilding the PKI
The quantum threat lands on every certificate twice: once in its own public key, and once in the CA signature that makes it trustworthy. The destination isn't a new algorithm; it's the ability to change algorithms.

Notice where the diagram ends. The goal isn't "move from RSA to ML-DSA". It's crypto agility: a PKI that can change algorithms again without being rebuilt from scratch. Post-quantum standards are young, more algorithms are coming (FN-DSA, HQC), and some current choices may need revisiting. An organisation that treats this as a one-time swap will be doing it all again in a decade.

Start where NIST starts: discovery

NIST's migration guidance, including the work of its National Cybersecurity Center of Excellence on migrating to post-quantum cryptography, puts discovery first: find and inventory where quantum-vulnerable public-key cryptography is used across your hardware, software and services. For PKI, that means every CA, template, certificate, relying party and protocol that touches a certificate. You can't migrate what you can't see. The inventory section below gives you commands to start.


Quantum-Safe Certificates: What Actually Changes

A quantum-safe certificate is still an ordinary X.509 v3 certificate. Same structure, same fields, same extensions, same chain building, same validity periods, same SANs and EKUs. What changes is three fields: the algorithm of the public key, the algorithm of the CA's signature, and the size of both.

Here's an excerpt from the lab's TLS server certificate, decoded with openssl x509 -text:

text
        Version: 3 (0x2)
        Signature Algorithm: ML-DSA-65
        Issuer: CN=Contoso PQ Lab Issuing CA
            Not After : Jan 10 14:15:23 2027 GMT
        Subject: CN=pq-web.contoso.local
            Public Key Algorithm: ML-DSA-65
                ML-DSA-65 Public-Key:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            X509v3 Subject Alternative Name:
                DNS:localhost, DNS:pq-web.contoso.local
    Signature Algorithm: ML-DSA-65

If you've read a certificate before, everything here is familiar except the algorithm names. That's deliberate: the IETF has defined how ML-DSA, SLH-DSA and ML-KEM keys are identified inside X.509, so existing PKI tooling, templates and policies carry over. What doesn't carry over is the size:

Two panels. The left lists the fields of a quantum-safe certificate: version v3, serial number unchanged, signature algorithm ML-DSA-65 from the issuing CA highlighted, issuer, validity 90 days, subject, public key algorithm ML-DSA-65 with OID 2.16.840.1.101.3.4.3.18 highlighted, public key 1,952 bytes compared with 65 for ECDSA P-256 highlighted, extensions, and signature value 3,309 bytes compared with about 72 for ECDSA highlighted. The right compares measured leaf certificate sizes on a shared scale: an ECDSA P-256 leaf of 493 bytes is a short bar, and an ML-DSA-65 leaf of 5,617 bytes is a long bar made almost entirely of the 1,952-byte public key and the 3,309-byte CA signature, with about 356 bytes of names, validity and extensions in both. Key plus signature is 28 percent of the ECDSA leaf and 94 percent of the ML-DSA-65 leaf
Measured in the lab: the same certificate with the same names and extensions grows from 493 to 5,617 bytes, and almost all of the growth is the key and the CA's signature.

Choosing a signature algorithm for each tier

Different parts of a PKI have different lives, so they need different choices:

Tier or useLifetimeSigns how oftenSensible post-quantum choiceWhy
Root CA15 to 25 yearsRarely (a few CA certificates, CRLs)ML-DSA-87, or SLH-DSALongest-lived trust anchor; size and speed matter least
Issuing CA5 to 10 yearsConstantly (every certificate)ML-DSA-65 or ML-DSA-87Needs fast signing; signature appears in every leaf
TLS server certificatesDays to a yearEvery handshakeML-DSA-44 or ML-DSA-65Handshake size matters most here
Device and user certificates (Wi-Fi, VPN)About a yearEvery authenticationML-DSA-44 or ML-DSA-65Must fit the device's key storage and the network protocol
Code signingYearsEach releaseML-DSA-87, SLH-DSA, or LMS/XMSSSignatures must stay trusted for the software's life
Firmware and bootThe hardware's lifeEach firmware buildLMS/XMSS or SLH-DSAConservative, hash-based; verified by simple boot code
Encryption certificates (S/MIME, EFS)Yearsn/aML-KEM key in the certificateUsed to agree keys, not to sign

That last row hides a genuine novelty. Encryption certificates will carry ML-KEM keys, and a KEM key can't sign anything. Today, a certificate request proves you hold the private key by signing the request with it; a KEM key can't do that, so new "proof of possession" methods (for example, the CA encrypting something to the key that only its holder can open) are being defined. Most PKIs will meet this first in email encryption.


Lab: Build a Quantum-Safe PKI in Ten Minutes

You don't need special hardware or a vendor product to see a quantum-safe PKI work. OpenSSL 3.5 or later supports ML-DSA, SLH-DSA and ML-KEM natively (Git for Windows already ships it; run openssl version to check). The lab builds the classic three-tier shape from the PKI implementation lab, only post-quantum: an ML-DSA-87 root, an ML-DSA-65 issuing CA and an ML-DSA-65 TLS server certificate.

A lab, not a production CA

These commands keep CA private keys in plain files on disk, which is fine for learning and wrong for production, where CA keys belong in an HSM or a managed service. On Git Bash for Windows, run export MSYS_NO_PATHCONV=1 first, otherwise -subj "/CN=..." is rewritten into a Windows path.

Step 1: Create the root CA

bash
openssl genpkey -algorithm ML-DSA-87 -out root.key
openssl req -x509 -new -key root.key -subj "/CN=Contoso PQ Lab Root CA" -days 3650 \
  -addext "basicConstraints=critical,CA:TRUE" \
  -addext "keyUsage=critical,keyCertSign,cRLSign" \
  -addext "subjectKeyIdentifier=hash" -out root.pem

Step 2: Create the issuing CA, signed by the root

bash
cat > ca.ext <<'EOF'
basicConstraints = critical, CA:TRUE, pathlen:0
keyUsage = critical, keyCertSign, cRLSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid
EOF
 
openssl genpkey -algorithm ML-DSA-65 -out issuing.key
openssl req -new -key issuing.key -subj "/CN=Contoso PQ Lab Issuing CA" -out issuing.csr
openssl x509 -req -in issuing.csr -CA root.pem -CAkey root.key -CAcreateserial \
  -days 1825 -extfile ca.ext -out issuing.pem

Step 3: Issue a TLS server certificate

bash
cat > leaf.ext <<'EOF'
basicConstraints = critical, CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = DNS:localhost, DNS:pq-web.contoso.local
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid
EOF
 
openssl genpkey -algorithm ML-DSA-65 -out leaf.key
openssl req -new -key leaf.key -subj "/CN=pq-web.contoso.local" -out leaf.csr
openssl x509 -req -in leaf.csr -CA issuing.pem -CAkey issuing.key -CAcreateserial \
  -days 90 -extfile leaf.ext -out leaf.pem
 
openssl verify -CAfile root.pem -untrusted issuing.pem leaf.pem
text
leaf.pem: OK

Notice that the TLS server certificate's key usage is Digital Signature only. In TLS 1.3, servers always authenticate by signing the handshake; the old RSA "key encipherment" usage doesn't exist for ML-DSA.

Step 4: Run a fully quantum-safe TLS 1.3 handshake

Start a test server with the post-quantum chain, then connect to it, trusting only the new root:

bash
openssl s_server -accept 8443 -cert leaf.pem -key leaf.key -cert_chain issuing.pem -www &
 
echo Q | openssl s_client -connect localhost:8443 -CAfile root.pem \
  -servername localhost -groups X25519MLKEM768
text
Peer signature type: mldsa65
Negotiated TLS1.3 group: X25519MLKEM768
SSL handshake has read 17195 bytes and written 1581 bytes
Protocol: TLSv1.3
Verify return code: 0 (ok)

That's a TLS connection where both halves are quantum-safe: hybrid ML-KEM for the key exchange, and an ML-DSA certificate chain plus ML-DSA handshake signature for authentication. The chain validated against a post-quantum root. It's also 17 KB.

Step 5: Compare it with an ECDSA hierarchy

Running the identical lab with ECDSA keys (P-384 root, P-256 issuing and leaf) gives the comparison:

CertificateECDSA hierarchyML-DSA hierarchy
Root CA certificate489 bytes7,510 bytes (ML-DSA-87)
Issuing CA certificate465 bytes6,876 bytes (signed with ML-DSA-87)
TLS server certificate493 bytes5,617 bytes
Handshake, classical key exchange (X25519)1,357 bytes receivedn/a
Handshake, hybrid key exchange (X25519MLKEM768)2,422 bytes received17,195 bytes received
A bar chart of bytes the client received in a full TLS 1.3 handshake with a three-tier hierarchy on localhost: classical, X25519 with an ECDSA chain, 1,357 bytes; hybrid key exchange, X25519MLKEM768 with an ECDSA chain, 2,422 bytes; fully quantum-safe, X25519MLKEM768 with an ML-DSA chain, 17,195 bytes, crossing a dashed line at about 14.6 KB marking a typical TCP initial window. Below, a panel compares a CRL with one revoked certificate signed by the issuing CA: ECDSA 247 bytes, ML-DSA-65 3,490 bytes, and both correctly rejected the revoked certificate when checked with openssl verify crl_check
Hybrid key exchange adds about a kilobyte. A post-quantum certificate chain adds about fifteen, enough to cross a typical TCP initial window.

The handshake figures include everything the client received, including two session tickets, so treat them as a realistic total rather than a pure certificate measurement. The lesson is clear either way: moving key exchange is cheap; moving certificates is not.

Step 6: Revoke the certificate

Revocation works the same way it always has. Using openssl ca with a minimal configuration, the lab revoked the server certificate with reason keyCompromise and generated a CRL signed by the ML-DSA-65 issuing CA, then checked it:

bash
mkdir -p ca && : > ca/index.txt && echo 1000 > ca/crlnumber
cat > ca.cnf <<'EOF'
[ ca ]
default_ca = lab
[ lab ]
database         = ca/index.txt
crlnumber        = ca/crlnumber
certificate      = issuing.pem
private_key      = issuing.key
default_md       = default
default_crl_days = 7
EOF
 
openssl ca -config ca.cnf -revoke leaf.pem -crl_reason keyCompromise
openssl ca -config ca.cnf -gencrl -out crl.pem
openssl verify -crl_check -CAfile root.pem -untrusted issuing.pem -CRLfile crl.pem leaf.pem
text
error 23 at 0 depth lookup: certificate revoked
error leaf.pem: verification failed

Exactly what you want. The CRL was 3,490 bytes, against 247 bytes for the same CRL from the ECDSA issuing CA. Almost all of the difference is the CA's signature, which is added once per CRL, so large CRLs grow by a fixed amount rather than doubling. OCSP responses, which are also signed, grow the same way.

Step 7: Ask a relying party

Finally, the step that matters most in an enterprise: can a real client trust this certificate? On the Windows 10 test machine, PowerShell could open the certificate but not understand it:

powershell
$cert  = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new("leaf.der")
$cert.PublicKey.Oid.Value          # 2.16.840.1.101.3.4.3.18 (no friendly name)
$chain = [System.Security.Cryptography.X509Certificates.X509Chain]::new()
$chain.Build($cert)
text
Exception calling "Build" with "1" argument(s): "Invalid algorithm specified."

The certificate is valid, OpenSSL trusts it, and Windows 10 simply doesn't know what ML-DSA is. That's not a bug; it's the relying-party problem in one line. Microsoft has been adding ML-DSA and ML-KEM support to newer Windows releases, but every operating system, browser, RADIUS server, VPN gateway, load balancer, printer and embedded device that checks your certificates must support the new algorithm before you can issue with it. Windows 10 reached the end of support in October 2025, so machines that stay on it are unlikely ever to trust an ML-DSA certificate.


Hybrid Certificates: Bridging Old and New

The relying-party problem is why nobody switches a PKI from RSA to ML-DSA overnight. For years, some clients will understand only classical certificates, some will understand both, and a few will insist on post-quantum. Hybrid certificate designs exist to bridge that gap:

Three panels. Composite: one certificate with a combined key, ML-DSA and ECDSA bound together, and both signatures, so a verifier must check both; pro, secure if either algorithm holds; con, only new software understands it. Dual certificates: two separate chains, classical and post-quantum, with the server picking one per client as many servers already do with RSA and ECDSA; pro, works with old and new clients; con, two hierarchies to run. Alternative signature: a classical certificate that also carries a post-quantum key and signature in non-critical extensions that old software ignores; pro, one certificate for everyone; con, bigger for everyone and limited support. A note says composite certificates are being standardised by the IETF, and dual chains work with today's TLS negotiation
Three hybrid designs. Dual chains are the most practical today; composite certificates are the long-term standards track.
ApproachHow it worksOld clientsSecurityStatus
CompositeOne certificate whose key and signature combine ML-DSA and a classical algorithm; both must verify❌ Can't parse itSafe if either algorithm holdsIETF drafts for composite ML-DSA; early product support
Dual certificatesTwo parallel chains; the server presents whichever the client supports✅ Get the classical chainEach client gets one algorithmWorks today with TLS signature negotiation
Alternative signatureA classical certificate with a post-quantum key and signature in extra, non-critical extensions✅ Ignore the extensionsDepends on whether the client checks the extensionsDefined in X.509 since 2019; limited support

The dual approach deserves emphasis because it's already familiar. Many web servers today hold both an RSA and an ECDSA certificate and pick one based on what the client offers in the TLS handshake. Adding an ML-DSA certificate as a third option uses exactly the same mechanism. Inside an enterprise, the equivalent is running a parallel post-quantum hierarchy alongside the existing one, distributing both roots, and moving relying parties over as they gain support.

Which should you plan for?

For an internal PKI, plan for parallel hierarchies first: they work with today's software and let you move relying parties one at a time. Watch composite certificates as the standards settle and products adopt them; they may become the simplest option for systems that must stay safe if either algorithm is broken.


TLS: Where Certificate Size Hurts

For TLS, the earlier stage 09 post covered key exchange. On the certificate side, three practical effects follow from the lab's numbers:

  • Web handshakes get slower. A 15 to 17 KB server flight can exceed the TCP initial congestion window (about 14.6 KB on many servers), adding a network round trip before the page can load. This is why the public Web is moving to post-quantum certificates more cautiously than to post-quantum key exchange, and why the IETF is working on ideas such as certificate compression and new, smaller certificate designs.
  • Mutual TLS doubles it. In mTLS (service-to-service traffic, device authentication, many APIs) the client also sends a chain. Both directions grow.
  • 802.1X Wi-Fi and wired authentication feel it most. EAP-TLS carries certificates inside EAP messages, which are fragmented into small pieces, each needing a round trip between the device, the access point and the RADIUS server. A chain ten times bigger means many more round trips, and some access points, switches and RADIUS servers limit how many they'll tolerate. If you run certificate-based Wi-Fi (see Certificate-Based Authentication), test post-quantum chains against your real network equipment early.

Two design habits help: keep chains short (leaf plus one issuing CA, with the root never sent), and use the smallest parameter set your policy allows for high-volume leaf certificates.


Signing: Code, Firmware, Documents and Tokens

Certificates aren't only for TLS. Signing is where PKI decisions live longest, because a signature may need to stay trustworthy for as long as the signed thing is used:

  • Code signing. Every signed executable, driver, script and update package depends on a signing certificate and the platform's trust in it. Signed software lives for years, so code-signing hierarchies are early candidates for ML-DSA-87 or SLH-DSA, and release pipelines will need to sign with new algorithms (and often with classical and post-quantum signatures side by side during the transition).
  • Firmware and Secure Boot. Boot firmware verifies the next stage with keys burned into or enrolled in the hardware (see Hardware Security). These are among the hardest keys to change, which is why the NSA's CNSA 2.0 suite prioritises hash-based LMS and XMSS for firmware signing.
  • Document signatures and timestamps. A signed contract may need to verify in 20 years. Long-term signature formats already handle algorithm ageing by re-timestamping archives with newer algorithms before the old ones weaken; post-quantum timestamp authorities extend that practice.
  • Identity tokens. SAML assertions, OIDC ID tokens and JWT access tokens are signed by your identity provider. Those keys rotate often, so the migration is mostly the provider's job, but applications that validate tokens must accept the new algorithms (see OAuth vs OpenID Connect vs SAML).

The Certificate Lifecycle in the Quantum Era

The certificate lifecycle post described eight stages. All eight still apply; each changes a little:

StageWhat changes with post-quantum algorithms
EnrollmentDevices must generate post-quantum keys, ideally in hardware; enrollment protocols must carry them. Classic SCEP was designed around RSA keys, so protocols such as EST, CMP and ACME are likelier paths for post-quantum enrollment
IssueCAs need post-quantum signing keys, ideally in HSMs that support ML-DSA; templates gain new algorithm options
InstallCertificates and keys must fit device key stores (TPMs, smart cards, secure enclaves), which are still gaining post-quantum support
UseEvery relying party must recognise the algorithm, as Step 7 of the lab showed
MonitorInventories must report the algorithm of every certificate, so you can track migration progress
RenewRenewal is the natural moment to change algorithm: issue the replacement on the new hierarchy
RevokeWorks as before; CRLs and OCSP responses get a few kilobytes bigger
ExpireShort lifetimes guarantee that old-algorithm certificates leave your estate on schedule

Renewal is the migration's best friend. The CA/Browser Forum has approved a phased cut in maximum public TLS certificate lifetimes, down to 47 days by 2029, which forces full automation. An organisation that renews automatically every few weeks can change algorithms by changing one setting in its issuance pipeline. One that renews manually once a year can't. The same logic applies internally: automated, short-lived device certificates (such as those Intune deploys) migrate far more easily than long-lived, hand-installed ones.


Crypto Agility: The Real Goal

Crypto agility means being able to change cryptographic algorithms, parameters and keys quickly, safely and without redesigning systems. NIST has published guidance on the considerations involved, and every national post-quantum roadmap treats it as a goal in its own right. For PKI, it looks like this:

LevelWhat it looks likeTypical sign
0. Hard-codedAlgorithms baked into code, devices and scripts"We'd have to rewrite it"
1. KnownA complete inventory of certificates, CAs and algorithmsYou can answer "where do we use RSA?"
2. ConfigurableAlgorithms set in templates, profiles and configuration, not codeChanging algorithm is a settings change
3. AutomatedIssuance, renewal and deployment are automaticEvery certificate can be replaced within its lifetime
4. Tested and governedAlgorithm changes are rehearsed, policies define approved algorithms, and vendors are held to roadmapsYou've already changed an algorithm once, on purpose

Practical habits that move you up the levels:

  • Centralise certificate management. A certificate lifecycle management (CLM) platform, or at least a single authoritative inventory, beats spreadsheets and surprises.
  • Automate everything that issues certificates. ACME for servers, Intune or EST for devices, pipelines for code signing.
  • Keep algorithms out of code. Applications should use the platform's certificate and key APIs, not assume RSA.
  • Make relying parties testable. Keep a lab with a post-quantum hierarchy (like the one above) and test new products against it before buying them.
  • Write it into procurement. Ask every vendor which post-quantum algorithms they support today, which they'll support next, and how updates are delivered.

Inventory: Find Your Quantum-Vulnerable PKI

Discovery is the first step in every migration plan. Three quick starting points:

1. Certificates on Windows machines. The PowerShell from the stage 08 post groups certificate stores by public-key algorithm; run it through your management tooling across a sample of devices and servers.

2. TLS endpoints. This loop records, for each endpoint, the negotiated key exchange and the certificate signature type:

bash
for h in www.google.com www.microsoft.com www.cloudflare.com login.microsoftonline.com github.com; do
  out=$(echo | openssl s_client -connect $h:443 -servername $h -brief 2>&1)
  grp=$(echo "$out" | sed -n 's/^Negotiated TLS1.3 group: //p; s/^Peer Temp Key: //p' | head -1)
  sig=$(echo "$out" | sed -n 's/^Signature type: //p' | head -1)
  printf '%-28s %-32s %s\n' "$h" "${grp:-connection failed}" "${sig:--}"
done

When this post was written, it returned:

text
www.google.com               X25519MLKEM768                   ecdsa_secp256r1_sha256
www.microsoft.com            X25519MLKEM768                   rsa_pss_rsae_sha256
www.cloudflare.com           X25519MLKEM768                   ecdsa_secp256r1_sha256
login.microsoftonline.com    ECDH, secp384r1, 384 bits        rsa_pss_rsae_sha256
github.com                   X25519, 253 bits                 ecdsa_secp256r1_sha256

Three of five endpoints already used hybrid post-quantum key exchange, two still used classical key exchange, and every certificate was still RSA or ECDSA. That's the state of the whole Internet in five lines, and the same scan pointed at your own endpoints is the start of your inventory. Results change as providers upgrade, so rerun it regularly. (One practical note: forcing a specific group with -groups makes some servers drop the connection rather than negotiate, so scan with OpenSSL's defaults.)

3. Your CAs. For each CA (AD CS, Cloud PKI, third-party), record its key algorithm and size, validity, the templates it issues, how many active certificates it has, and what consumes them. Roots valid beyond 2035 deserve special attention, because they outlive the deadlines in every national roadmap.


Enterprise Migration Plan for PKI

Phase 0: Discover and assign ownership

Build the certificate and CA inventory above, map relying parties for each certificate type, and give the PKI migration a named owner and budget. This is the step NIST guidance puts first.

Phase 1: Turn on hybrid key exchange

Enable X25519MLKEM768 on load balancers, reverse proxies, VPNs and servers. It protects data in transit against harvest now, decrypt later without touching certificates, and it flushes out middleboxes that can't cope with larger handshakes.

Phase 2: Build a post-quantum lab hierarchy

Recreate your hierarchy with ML-DSA (as in the lab above) and test it against every relying party you run: Windows and macOS versions, browsers, RADIUS/NPS, VPN gateways, Wi-Fi equipment, applications. Record what fails; that list is your vendor roadmap.

Phase 3: Stand up a production parallel hierarchy

Create a new post-quantum (or composite) root and issuing CAs, with keys in HSMs that support the algorithms. Distribute the new root to devices as a trusted certificate, for example with Intune trusted certificate profiles, long before anything depends on it.

Phase 4: Migrate issuance at renewal

As relying parties gain support, move each certificate type to the new hierarchy at its next renewal, starting with the ones you control end to end (internal services, then device certificates, then partner-facing systems).

Phase 5: Move signing

Migrate code-signing, document-signing and timestamping hierarchies, which protect artefacts that live for years, and work with hardware vendors on firmware signing.

Phase 6: Retire the classical hierarchy

Once nothing depends on RSA or ECC certificates, stop issuing from the old CAs, let remaining certificates expire, then remove the old roots from trust stores, the step that finally closes the door.

For a Microsoft-based estate

  • AD CS and Microsoft Cloud PKI. Check current documentation for post-quantum issuance support before setting dates; support is arriving gradually. The Cloud PKI vs AD CS comparison applies to the new hierarchy as much as the old one.
  • Intune. Today's SCEP and PKCS certificate profiles issue RSA keys, typically held in the TPM. Watch Intune's roadmap for post-quantum key types, and remember the enrollment-protocol point above.
  • TPMs and Windows Hello. Hardware-backed keys are a security win you don't want to give up. Post-quantum key support in TPMs is still coming, so device certificates may be among the last to migrate.
  • Windows versions. Relying-party support depends on the OS. Machines on unsupported versions, like the Windows 10 test machine above, are a migration blocker in their own right.

Common mistakes

MistakeBetter approach
Trying to "upgrade" the existing root to ML-DSABuild a parallel hierarchy and migrate relying parties to it
Issuing post-quantum certificates before relying parties support themTest every relying party in a lab hierarchy first
Forgetting network equipment in 802.1XTest post-quantum chains with real access points, switches and RADIUS
Treating the inventory as a one-offTrack algorithms continuously; migration takes years
Long-lived, manually installed certificatesAutomate issuance and shorten lifetimes so algorithms can change at renewal
Ignoring signed artefactsCode, firmware, documents and timestamps outlive certificates; plan them early

Quick Recap

  • A quantum-safe certificate is still X.509; only the key and signature algorithms change, and they now make up 94% of the certificate.
  • Choose algorithms by tier: ML-DSA-87 or SLH-DSA for roots and code signing, ML-DSA-65 or ML-DSA-44 for issuing CAs and leaves, LMS/XMSS for firmware, ML-KEM for encryption certificates.
  • A fully quantum-safe TLS 1.3 handshake works today with OpenSSL 3.5, but it received 17,195 bytes against 2,422 for the same hierarchy with ECDSA.
  • Revocation works unchanged; an ML-DSA-signed CRL was 3,490 bytes against 247.
  • Relying parties are the bottleneck: Windows 10 couldn't even build the chain ("Invalid algorithm specified").
  • Hybrid certificates bridge the gap: dual chains work today, composite certificates are the standards track.
  • Automation and short lifetimes make algorithm changes routine, and renewal is the moment to migrate.
  • Crypto agility is the goal: inventory, configurable algorithms, automated issuance, tested change.
  • Start with discovery, as NIST recommends, then hybrid key exchange, then a parallel post-quantum hierarchy.

What's Next on the Learning Path

Stage 10, Quantum Networking, looks at the other side of quantum security: using quantum physics itself to protect communication, with quantum key distribution, entanglement distribution and the idea of a quantum internet, and how it compares with the post-quantum cryptography covered in stage 09. The full 11-stage path is listed at the end of the beginner's guide.

CChetan Yamger

Written by

Chetan Yamger

Cloud Engineer · AI Automation Architect · Modern Workplace Consultant

Cloud Engineer, AI Automation Architect, and Modern Workplace Consultant based in Amsterdam, Netherlands. Specializing in scalable, secure enterprise solutions with Microsoft Azure, Intune, PowerShell, and AI-driven automation using ChatGPT, Gemini, and modern LLM technologies.

Cloud & Modern WorkplaceMicrosoft Intune & MDMAzure & Microsoft 365AI AutomationPrompt EngineeringPowerShell & Graph APIWindows AutopilotConditional Access & Zero TrustSCCM / MECM & MSIXVDI / WVDPower BINode.js & Next.js
Newsletter

Stay in the loop.
New articles, straight to you.

Deep-dive technical articles on Intune, PowerShell, and AI — no noise, no spam.

New article notifications
No spam, ever
Free forever

Discussion

Share your thoughts — your email stays private

Leave a comment

0/2000

Your email is used to prevent spam and will never be displayed.