rcgen: Certificate Generation
rcgen generates X.509 certs in pure Rust, no openssl dependency.
use rcgen::{CertificateParams, DistinguishedName, SanType, KeyPair};
let mut params = CertificateParams::new(vec!["api.example.com".to_string()])?;
params.distinguished_name = DistinguishedName::new();
params.distinguished_name.push(rcgen::DnType::CommonName, "api.example.com");
params.not_after = rcgen::date_time_ymd(2026, 12, 31);
let key_pair = KeyPair::generate()?;
let cert = params.self_signed(&key_pair)?;
let pem = cert.pem();
let der = cert.der();