Build a certificate authority — a Root CA, an Intermediate CA and an Issuing CA — and issue the leaf certificates any of them can sign: TLS server, TLS client for mutual authentication, code signing, S/MIME, OCSP responder, time stamping, smartcard logon and Kerberos PKINIT. All cryptography runs in your browser; nothing is uploaded — except by the TLS test at the foot of the page, which cannot be done here at all.
Every X.509v3 extension is editable, including its critical flag, and any extension at all can be added by OID. Every combination of signature algorithm (RSASSA-PKCS1-v1_5, RSA-PSS, ECDSA and Ed25519, over SHA-256/384/512, plus SHA-1 for testing what refuses it) and subject key algorithm (RSA 2048/3072/4096, ECDSA P-256/P-384/P-521, Ed25519) is available. Keys and certificates are kept in this browser so a CA is still there tomorrow, and can be exported as PEM, DER, JWK or PKCS#12.
This is the static (backend-less) deployment. Everything on this page works except the TLS test connection, which needs the API layer: a browser cannot choose which client certificate to present, cannot be given a truststore, and cannot read the handshake it made.