CSR Decoder (Certificate Signing Request)
Decode a CSR and verify its signature before sending it to a CA.
Use via API
Decode a PKCS#10 certificate signing request: subject, public key, requested SANs and extensions, attributes, and whether its self-signature is valid. Send JSON, get JSON back.
POST https://pithlab.com/api/v1/tools/csr-decoder
curl https://pithlab.com/api/v1/tools/csr-decoder \
-H "Authorization: Bearer $PITHLAB_KEY" \
-H "Content-Type: application/json" \
-d '{"pem":"-----BEGIN CERTIFICATE REQUEST-----\nMIIBzzCCAXYCAQAwgZExCzAJBgNVBAYTAkdCMQ8wDQYDVQQIDAZMb25kb24xDzAN\nBgNVBAcMBkxvbmRvbjEUMBIGA1UECgwLRXhhbXBsZSBMdGQxDDAKBgNVBAsMA1dl\nYjEZMBcGA1UEAwwQd3d3LmV4YW1wbGUudGVzdDEhMB8GCSqGSIb3DQEJARYSYWRt\naW5AZXhhbXBsZS50ZXN0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWIxfVoyp\n0KgIZ3n+X+yyE91ZT/rmpCkycrF/J+R5JFfYL0+3tnlR9wE9ZyHH1jQhY6vkSOw0\nwd/aUHga4HN3/qCBgTB/BgkqhkiG9w0BCQ4xcjBwMG4GA1UdEQRnMGWCEHd3dy5l\neGFtcGxlLnRlc3SCDGV4YW1wbGUudGVzdIcEwAACCocQIAENuAAAAAAAAAAAAAAA\nAYESYWRtaW5AZXhhbXBsZS50ZXN0hhdodHRwczovL2V4YW1wbGUudGVzdC9pZDAK\nBggqhkjOPQQDAgNHADBEAiBIAlGjvPhfb3QjhVHOSmSli1Surh1qzrnkG1kl5L3g\nKAIgZD5i+6FmSB3FkqdOJZ/Ka3xK2grhF0jV+owHocoukgw=\n-----END CERTIFICATE REQUEST-----\n"}'About the CSR Decoder
Decode a PKCS#10 certificate signing request to check its subject, SANs, key type and size, then verify its signature. Runs in your browser, nothing is uploaded.
How to use the CSR Decoder
- Paste your CSR, the text starting with -----BEGIN CERTIFICATE REQUEST-----, or upload a .csr file.
- Check the subject, the requested Subject Alternative Names and the key type and size.
- Look at the signature check: a valid result proves the CSR was not altered after it was signed.
- Copy the summary if you need to record what you requested from your certificate authority.
Examples
Input
-----BEGIN CERTIFICATE REQUEST----- MIIC5zCCAc8CAQAwPjEZMBcGA1UEAwwQYXBpLmV4YW1wbGUudGVzdDEUMBIGA1UE CgwLRXhhbXBsZSBMdGQxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEAhkUnFBNH5wUXWZSfGWZR3AD+gm+shg6eOVfUs+rXF0q9aHRi bo7ZusRYB1gO2zzkxByJ5c3s5kstJjDNSzgKSaAZ6c11AsHGP8bbD4w9b9dnV5be ZL/E+bpoGY8yP0RTGGCzBkVBuax9G0E8nK8G+qwArxya6it5wuDkjXjGn95LKQDV lHrZHf3klhISJidtxe4gbPBT+MjH+iX7y4jjK15PjTtTjNtMsG8EP1QidvjhoVke ugW57bFj2iIfAcvooC32ih457i2QtG+cuytAOzOZ7O8xt5Xa5wDlDDmKERCnLOnE wFT0nYM/CwDedkrG29hr5vk8j7iQu//4t+NudwIDAQABoGQwYgYJKoZIhvcNAQkO MVUwUzAvBgNVHREEKDAmghBhcGkuZXhhbXBsZS50ZXN0ghIqLmFwaS5leGFtcGxl LnRlc3QwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3 DQEBCwUAA4IBAQAlIenCOM/XN34eDtoS4ShrLMISsSaw9DZ8vMXTe6Z0tmfMcX9c KE7mLXh3B6VajdykfV0FpfXWWyUvZdkMxIuglsVwhXriZ1oxglFjt9/AaXlzSExN L3/yUpqhEF1w54xN6MjGDDT1A1LySQpSd+YIfbWYVitGAyuTR7Y0jiZZeNRxuFwI BVn+/dE+xzBqrT7lNz7iTnLSUzNLF2lykZi/x73RaO4vRH2vMqSHHplNQZof47DY 74imfJnH+Deg9geYdieYo60XbQfOhSXiKxhsAcpYOFTPHXAWNKSbtJLTdV4H44hC W2cx2fzSKFrkWTz48mAMEXaa/dB5BhWFG606 -----END CERTIFICATE REQUEST-----
Output
Subject: CN = api.example.test, O = Example Ltd, C = US Public key: RSA 2048-bit Signature: sha256WithRSAEncryption SAN: DNS:api.example.test, DNS:*.api.example.test Key usage: Digital Signature, Key Encipherment Extended key usage: TLS Web Server Authentication
Frequently asked questions
What is a CSR?
A certificate signing request is a small file you send to a certificate authority. It contains your public key, the names the certificate should cover, and a signature made with your private key. The private key itself is never part of a CSR.
What does the signature check prove?
The CSR is signed with the private key that matches the public key inside it. A valid signature shows the request is intact and was made by whoever holds that key. An invalid one means the file was edited or corrupted.
Why is my domain missing from the SAN list?
Many tools only put the Common Name in the subject. Certificate authorities and browsers rely on Subject Alternative Names, so regenerate the CSR with every host name listed as a SAN, for example with openssl req -addext "subjectAltName=DNS:example.com,DNS:www.example.com".
Which key sizes are acceptable?
Public CAs require RSA keys of at least 2048 bits or ECDSA keys on P-256 or P-384. RSA 1024 and SHA-1 signatures are rejected everywhere.
Is it safe to paste my CSR here?
Yes. A CSR only holds public information, and this page decodes it in your browser without sending it anywhere.