Check your request with a CSR decoder
A certificate signing request (CSR) is what you send to a certificate authority when you order an SSL/TLS certificate. Mistakes in it, such as a missing hostname, a misspelled organization or a weak key, end up in the issued certificate. This csr decoder shows exactly what the request contains so you can fix problems before the CA sees them.
What is inside a CSR?
A CSR uses the PKCS#10 format. It contains a subject name (country, state, city, organization, common name and so on), the public key of the key pair you generated, and optional attributes. The most important attribute is the extension request, which carries the Subject Alternative Names you want in the certificate. The whole structure is signed with the matching private key, which proves to the CA that you hold that key.
Example
Decoding the sample request produces:
Subject: C=GB, ST=London, L=London, O=Acme Widgets Ltd, OU=IT, CN=shop.acme-widgets.co.uk, emailAddress=admin@acme-widgets.co.uk
countryName (C) GB
organizationName (O) Acme Widgets Ltd
commonName (CN) shop.acme-widgets.co.uk
…
Public key: RSA 2048 bit
Signature: sha256WithRSAEncryption — valid (proves possession of the private key)
Names (SAN): DNS:shop.acme-widgets.co.uk, DNS:www.shop.acme-widgets.co.uk
The report ends with a SHA-256 hash of the public key. The same key hash appears, Base64-encoded, as the SPKI fingerprint in the certificate decoder, which lets you confirm that an issued certificate was made from this request's key.
What the decoder checks
- Signature: the self-signature is verified with WebCrypto for RSA (PKCS#1 v1.5), ECDSA P-256/P-384/P-521 and Ed25519 requests. INVALID means the CSR was edited after signing or is damaged.
- Subject Alternative Names: if none are requested, the report says so. Public CAs build the certificate's name list from SANs, and most expect at least one.
- Key size: RSA keys under 2048 bits trigger a warning, because public CAs reject them.
- Other attributes: values such as a challenge password or unstructured name are listed separately from the requested extensions.
Common problems and fixes
- Only the common name is set: add the bare domain and the www name as SANs. When you create the request with the CSR generator, the common name is added to the SAN list for you.
- Wrong country value: the C field must be a two-letter ISO code, such as US or GB, not a country name.
- "This is not a PKCS#10 certificate signing request": you pasted a certificate or a key. Certificates start with
BEGIN CERTIFICATE, while requests start withBEGIN CERTIFICATE REQUESTor the olderBEGIN NEW CERTIFICATE REQUEST. Both request headers are accepted. - Signature could not be checked: the algorithm is not one WebCrypto supports, such as DSA or RSA-PSS. The rest of the report is still accurate.
CSR vs certificate
A CSR is a request: it has no issuer, no serial number and no validity dates, and the CA can ignore or override fields in it. The certificate you receive back is what clients actually trust. Decode both and compare the subject and SAN lines to make sure the CA issued what you asked for. For a deeper look at the raw structure, open the request in the ASN.1 decoder.
Privacy
A CSR contains only public information, but it is still processed entirely in your browser. Parsing is done by a built-in ASN.1 reader and signature checks use WebCrypto, so nothing is uploaded.