Why Test with PQC-Signed Certificates Now
Public Certificate Authorities don't yet issue ML-DSA certificates for production use, but that doesn't mean there's nothing to test today. TLS libraries, certificate parsers, monitoring tools, and internal PKI systems all need code paths that can parse, validate, and chain ML-DSA-signed certificates before that day arrives. Generating a self-signed test certificate is the fastest way to find out whether your stack already handles a larger, differently-shaped signature algorithm correctly — ML-DSA signatures and public keys are considerably larger than their RSA or ECDSA equivalents, and some older tooling makes size assumptions that don't hold.
ML-DSA Certificate Size Comparison
| Algorithm | Public Key | Signature | Typical Cert Size |
|---|---|---|---|
| RSA-2048 | ~270 B | ~256 B | ~1.2 KB |
| ECDSA P-256 | ~65 B | ~70 B | ~0.7 KB |
| ML-DSA-44 | 1,312 B | 2,420 B | ~4 KB |
| ML-DSA-65 | 1,952 B | 3,309 B | ~5.5 KB |
| ML-DSA-87 | 2,592 B | 4,627 B | ~7.5 KB |
That size difference has real consequences for TLS handshake latency, certificate chain transmission, and any hardware or firmware with fixed buffer sizes — another reason to start testing now rather than after a CA offers issuance.
What's in the Certificate
Each generated certificate is self-signed (issuer equals subject), marked as an end-entity certificate (not a CA), and carries a Key Usage extension for digital signature and certificate signing. It's meant for local testing — import it into a browser's trust store, a test TLS server, or a certificate-parsing tool to check compatibility.
