Add ML-DSA certificate generation (--mldsa flag) using Go 1.27 crypto/mldsa
France's ANSSI will stop certifying security products without post-quantum cryptography starting in 2027 - the first hard regulatory deadline of its kind globally. Additional mandates: US NSA CNSA 2.0 (2027), NIST IR 8547 (deprecation by 2030, disallowed by 2035), EU critical infrastructure (2030).
Summary
mkcert currently supports RSA and ECDSA certificates. With Go 1.27 shipping crypto/mldsa (FIPS 204) with full crypto/x509 ML-DSA support, mkcert could add a --mldsa flag (parallel to the existing --ecdsa flag) for generating locally-trusted ML-DSA development certificates.
This would make mkcert the easiest way for any developer to create PQC certificates for local testing.
Proposed API
# Generate ML-DSA root CA + leaf certificate
mkcert --mldsa localhost 127.0.0.1 ::1
# Generate ML-DSA root CA only
mkcert --mldsa --install
Context
- Go 1.27's
crypto/mldsaproposal is Accepted withcrypto/x509ML-DSA signing support - age v1.3.0 already shipped PQC (hybrid ML-KEM-768)
- Microsoft AD CS shipped ML-DSA certificates (GA, May 2026)
- AWS Private CA shipped PQC certificates (GA, November 2025)
Implementation Notes
The change would be modest — a new branch in generateKey() (cert.go) alongside the existing ECDSA and RSA paths. Go 1.27's crypto/x509 handles ML-DSA certificate creation natively.
I'm aware of the maintenance discussion in #664 and am happy to contribute the implementation if this is something you'd accept.
References
Source: FiloSottile/mkcert