CSR Decoder — Inspect a PKCS#10 Certificate Signing Request
Decode a PEM or Base64 CSR (PKCS#10) into its subject DN, requested SAN hostnames, public-key algorithm and size, and signature algorithm.
What the CSR decoder does
Paste a PEM- or Base64-encoded Certificate Signing Request (PKCS#10) and it is decoded into readable fields: the subject distinguished name, the Subject Alternative Names it requests, the public-key algorithm and size (RSA or EC), and the signature algorithm the request is self-signed with. A folded Key material and signature section under the fields holds the public key itself as PEM, with a Copy public key button of its own, an RSA key's Modulus and Public exponent (for any other key, its Public key bytes), and the Signature value, the bytes written in the colon-separated hex openssl req -text prints. Sample loads a real request to try it on, and Clear empties the box and the result. Everything is parsed locally in your browser with asn1js and PKI.js — the same parser stack as the X.509 certificate decoder — so a CSR never leaves your device.
Why inspect a CSR before you send it
A CSR is what you hand to a Certificate Authority to request a TLS certificate, and it is opaque Base64 once generated. Decoding it lets you confirm — before you pay for or deploy a certificate — that the common name and every SAN hostname are spelled correctly, that the key is the size you intended, and that no field was mistyped. Catching a wrong hostname here saves a costly reissue later.
Frequently asked questions
What formats are accepted?
Paste a PEM CSR between the BEGIN and END CERTIFICATE REQUEST lines, or the raw Base64 (DER) body on its own. This tool reads the public certification request, never the private key.
Does it verify the signature or the requested extensions?
The signature, yes; the extensions are shown, not judged. It decodes and displays the fields — subject, SANs, key algorithm and size, signature algorithm and each requested extension — so you can inspect them, and it checks the self-signature against the key the request carries. It does not contact a Certificate Authority.
Does it warn about a weak key?
Yes. A small RSA or EC key and a SHA-1 or MD5 signature are flagged.
Does it show the request’s fingerprints and its other attributes?
Yes. Every decode lists Fingerprints of the request (DER): SHA-256, then SHA-1 (legacy) and MD5 (legacy), in colon-separated uppercase hex as openssl dgst -c prints them, hashed over the request’s own DER bytes only. Attributes other than the extension request, such as challengePassword or unstructuredName, appear under Other attributes by the name openssl req -text uses, or by their OID. Fingerprints and attributes alike go into the copied summary.
Can I see the public key and the signature themselves?
Yes. Open Key material and signature under the decoded fields: it holds the public key as a PEM block, with a Copy public key button of its own, an RSA key's Modulus and Public exponent (for an EC key, its Public key bytes), and the Signature value. The bytes are written in the colon-separated hex openssl req -text prints, so the request can be matched against a private key or a certificate.