Back to CSR Checker
TroubleshootingTools

Understanding CSR Checker Results

A complete guide to interpreting your Certificate Signing Request analysis

8 min read
CSR Checker tool for validating Certificate Signing Requests

Watch: CSR Checker - Decode Your CSR and Spot 4 Rejection Causes

What is a CSR?

A Certificate Signing Request (CSR) is a block of encoded text that contains information about the entity requesting a certificate and the public key that will be included in the certificate. You submit a CSR to a Certificate Authority (CA) to obtain an SSL/TLS certificate.

The CSR Checker tool decodes your CSR entirely in your browser—nothing is sent to any server—and shows you exactly what information it contains before you submit it to a CA.

Validation Status

The first thing you'll see is whether the CSR is valid. This checks two things:

CSR Valid - Signature Verified

The CSR is properly formatted AND the signature matches the public key. This means the CSR was created correctly and hasn't been tampered with.

Signature Not Verified

The CSR could be parsed but signature verification failed. This might be due to an unsupported algorithm or a corrupted CSR. The CA may still accept it.

Subject Information

The subject contains identifying information about who is requesting the certificate. Not all fields are required—it depends on the certificate type.

FieldDescriptionWhen Required
CNCommon Name - usually the domain nameOptional (SANs preferred)
OOrganization - legal company nameOV/EV certificates
OUOrganizational Unit - departmentProhibited since 2022
LLocality - cityOV/EV certificates
STState or ProvinceOV/EV certificates
CCountry (2-letter ISO code)OV/EV certificates

Important: The Organizational Unit (OU) field has been prohibited in public TLS certificates since September 2022 per CA/Browser Forum requirements. If your CSR includes an OU field, the CA will likely ignore it or reject the request.

Public Key Details

The public key section shows the cryptographic strength of your certificate. Here's what to look for:

RSA Keys

Key SizeStatusNotes
1024-bit RejectedWill not be accepted by any public CA
2048-bit AcceptableCurrent minimum, consider upgrading
3072-bit GoodRecommended for new certificates
4096-bit StrongVery secure, slightly slower handshakes

ECDSA Keys

ECDSA (Elliptic Curve) keys offer equivalent security with smaller key sizes and faster performance:

CurveEquivalent RSAStatus
P-256~3072-bit RSA Recommended
P-384~7680-bit RSA Strong
P-521~15360-bit RSA Very Strong

Subject Alternative Names (SANs)

SANs are the domains and IP addresses that the certificate will be valid for. This is one of the most important parts of your CSR to verify.

Critical Change: Since 2017, browsers check SANs instead of Common Name to determine certificate validity. If your domain isn't in the SAN list, the certificate won't work—even if it's in the Common Name field.

SAN Types

  • DNS: Domain names like www.example.com or *.example.com (wildcard)
  • IP: IP addresses for direct IP access (less common)
  • Email: Email addresses (for S/MIME certificates)
  • URI: Full URIs (rare in TLS certificates)

No SANs? Don't count on the CA filling one in. Some CAs will copy a validated Common Name into the SAN list; many reject the request outright, and ACME-based issuance requires SANs. A CSR with a Common Name and no SAN is the single most common rejection reason. Always include SANs explicitly — the bare domain and the www host if you serve both, because SAN matching is exact.

Signature Algorithm

The signature algorithm is used to sign the CSR itself (proving you have the private key). The CA will typically use the same algorithm family for the final certificate.

AlgorithmStatus
SHA-256 with RSA Standard (most common)
SHA-384 with RSA Strong
SHA-256 with ECDSA Recommended for EC keys
SHA-1 with RSA Deprecated - will be rejected
MD5 with RSA Insecure - will be rejected

Common Issues and How to Fix Them

RSA key too small (1024-bit)

Your CSR uses an RSA key that's considered insecure. Generate a new key pair with at least 2048 bits:

openssl genrsa -out server.key 3072

No SANs in CSR

Create a config file to add SANs. Save this as san.cnf:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
CN = www.example.com

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = www.example.com
DNS.2 = example.com

Then generate your CSR: openssl req -new -key server.key -out server.csr -config san.cnf

SHA-1 signature algorithm

SHA-1 is deprecated. Regenerate your CSR specifying SHA-256:

openssl req -new -sha256 -key server.key -out server.csr

Wrong domain in Common Name

The domain in your CSR doesn't match your website. You'll need to generate a new CSR with the correct domain. Make sure to include it as both the CN and in the SANs for maximum compatibility.

Does the CSR still match your private key?

This is the check nobody runs until the certificate arrives and the service will not start. A CSR is bound to one key pair. If the key was regenerated at any point after the CSR was created, the issued certificate will not work with the key sitting on your server.

Compare the public key digests:

openssl req -in request.csr -noout -pubkey | openssl sha256
openssl pkey -in private.key -pubout | openssl sha256

The two digests must be identical. If they are not, the CSR and the key are unrelated and there is nothing to salvage — order a reissue against a fresh CSR. Run this before you order, not after the certificate lands.

OpenSSL 3.x labels the output SHA2-256(stdin)= and OpenSSL 1.1.1 labels it SHA256(stdin)=. Only the hex digest matters.

SAN syntax rules that get requests rejected

These all decode cleanly and still fail at intake:

  • Underscores are prohibited in dNSName entries. Enforced since 2019, with no exception for internal-looking names.
  • IP addresses belong in an iPAddress SAN, not a dNSName. Putting 10.0.0.5 in a dNSName field produces a request that decodes perfectly and gets rejected.
  • Wildcards are leftmost-label only. *.example.com is valid; *.*.example.com and www.*.example.com are not. A wildcard also does not cover the bare apex — *.example.com does not match example.com, which is why apex plus wildcard is the usual pairing.

What the CA actually keeps from your subject

Public CAs discard most of what you put in the subject DN. Organization, locality and state come from the CA's own validated records, not from your CSR. What the CA reliably carries forward is your public key and, for DV certificates, the names it validates.

Getting the organizational fields perfect is not where your attention should go. The public key and the SAN list are.

Should you reuse a CSR at renewal?

You can, and most CAs will accept it. You generally should not, because reusing the CSR means reusing the key pair — the same private key stays in production across renewal after renewal, and the blast radius of a compromise grows with every cycle.

This matters more each year because renewals are getting more frequent. Maximum TLS certificate lifetime is 200 days today, drops to 100 days on 15 March 2027, and to 47 days in 2029. At that cadence, generating a fresh key and a fresh CSR on every renewal is not extra work — it is what automated issuance already does by default.

Privacy & Security

CSRs contain only your public key and identifying information—there's nothing secret in them. However:

  • The CSR Checker runs entirely in your browser. Your CSR is never sent to any server.
  • Never paste your private key anywhere online. If you accidentally included a private key, the tool will warn you.
  • CSRs are safe to share with CAs—that's their purpose. But don't share them publicly unless necessary.