Upload your CSR and get a signed certificate for testing
Step 1: Your Information
Tip: For best compatibility, match CA type to certificate type (RSA cert → RSA CA)
File naming for this combination: Every file below is prefixed with this, so each cert/CA permutation lands in your folder without overwriting the others.
Privacy Note: Your name will be publicly visible in test results. Use a pseudonym if you prefer anonymity.
Step 2: Generate CSR
Copy the command below and run it on your machine with your YubiKey inserted.
Import the .p12 file to your browser's certificate manager
Step 5: Install CA Certificates
Important: Your browser/OS must trust the CA certificate(s) that signed the test server certificates.
Download and install these CA certificates to your trusted root store.
Note: This is a one-time setup. Once installed, you can test with any client certificate without reinstalling CAs.
Download CA Certificates:
Install CA Certificate:
Windows:
Double-click the downloaded .crt file
Click "Install Certificate"
Choose "Current User" or "Local Machine"
Select "Place all certificates in the following store"
Click "Browse" and select "Trusted Root Certification Authorities"
Complete the wizard
macOS:
Double-click the downloaded .crt file
Keychain Access opens - add to "login" or "System"
Double-click the certificate in Keychain Access
Expand "Trust" and set "When using this certificate" to "Always Trust"
Step 6: Unplug and Reinsert YubiKey
If you imported the certificate to a YubiKey:
Unplug your YubiKey
Wait 2 seconds
Reinsert your YubiKey
This ensures your browser/OS recognizes the new certificate on the YubiKey.
Step 7: Test mTLS
Understanding server configurations:
Server Cert: The algorithm of the server's certificate private key (RSA/ECDSA/ML-DSA)
Server CA: Which CA signed the server's certificate (RSA/ECDSA/ML-DSA)
Channel: Key exchange algorithm for the TLS connection (Classical = X25519, Hybrid PQ = X25519MLKEM768)
Your client cert can be any key type - what matters is which CA signed it!
✅ Your certificate will work with these test servers:
Click a port to test in a browser, or run the command under it to test from a
terminal instead. The commands use the exact filenames from Step 2 and assume
your .crt, .key and the CA file are in the current
directory. They need OpenSSL 3.5+ for the ML-DSA cases.
If your key lives on a YubiKey there is no .key file to point at,
so use the browser link for those.
A good connection ends with Verification: OK and, on the hybrid
ports, Negotiated TLS1.3 group: X25519MLKEM768. The
printf at the front is not decoration: under TLS 1.3 the server
only reports a rejected client certificate once data actually moves, so
without it a refused certificate still looks like a success.
⚠️ Other servers (require a different CA):
If the connection succeeds, you'll see your certificate details and connection information displayed by the server!