CSR Decoder

Verify the contents of your Certificate Signing Request (CSR) before purchasing an SSL/TLS certificate. Paste your PEM-formatted CSR below. Decoding happens 100% locally in your browser. We never transmit your private keys or CSR data to a server.

CSR Decoder
Decode and inspect PEM-formatted Certificate Signing Requests locally in your browser.
Local Only
Paste CSR (PEM format)
Decoded CSR Details

Waiting for CSR input...

How ZeroData protects your privacy

  • No Uploads: Tool input is processed in your browser and is not sent to ZeroData servers.
  • No Storage: Tool input is not saved by this website.
  • No Input Tracking: Analytics never receive the text, files, keys, or credentials you process.
  • Verifiable: Disconnect from the network after the page loads; local tool processing continues without uploading your input.

Quick Solution

To decode a Certificate Signing Request (CSR) locally on the command line, use OpenSSL: openssl req -text -noout -verify -in request.csr. This command prints the Subject information (Common Name, Organization, etc.) and verifies the CSR's internal signature to ensure it hasn't been tampered with.

When Should I Use This?

Use the CSR decoder before submitting your request to a Certificate Authority (CA) to ensure all requested attributes are strictly correct.

  • Verifying the Common Name (CN) perfectly matches the domain name you intend to secure.
  • Checking that all required Subject Alternative Names (SANs) are present for multi-domain (UCC/SAN) certificates.
  • Confirming the correct Organization (O) and Locality (L) details are included for Extended Validation (EV) certificates.

How to Generate and Decode a CSR

The most common way to generate a Certificate Signing Request (CSR) is with OpenSSL on your server. A CSR contains the public key and identity information needed by a Certificate Authority (CA) to issue an SSL/TLS certificate. Once generated, you can inspect it using our tool to ensure all details are correct. After your certificate is signed, you can verify it with our Certificate Decoder. Additionally, secure your server infrastructure using our SSH Key Generator and manage configurations with our ENV File Formatter.

For more detailed technical learning, read our Complete Guide to X.509 Certificates.

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

This command generates a 2048-bit RSA private key (server.key) and a CSR (server.csr). You then submit the server.csr file to your chosen Certificate Authority. Never share your server.key file with anyone, including the CA.

Why Privacy Matters

Handling cryptographic materials requires absolute security. While a CSR only contains your public key and domain identity—not your private key—it is still best practice to avoid pasting infrastructure details into random web forms.

Our CSR Decoder is built with a strict local-first architecture. We guarantee that your data is 100% private — files never leave your browser. The decoding process utilizes client-side JavaScript to parse the ASN.1 structure of the PEM file entirely within your machine's memory. No API calls are made, and no data is ever transmitted to a backend server. This ensures your infrastructure remains protected against network interception or unauthorized logging.

Expected CSR Format

Your CSR must be in PEM format, which consists of Base64-encoded ASCII data wrapped in specific header and footer lines. If you are copying from a terminal, ensure you include the exact begin and end tags:

-----BEGIN CERTIFICATE REQUEST-----
MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
... (base64 data) ...
-----END CERTIFICATE REQUEST-----

What This Decoder Extracts

When you paste your CSR, our tool instantly breaks down the encoded data into readable fields, allowing you to audit the following:

  • Common Name (CN): The primary domain the certificate will cover (e.g., www.example.com). This must match exactly.
  • Organization (O): The legal entity requesting the certificate, required for Organization Validation (OV) and Extended Validation (EV) certificates.
  • Subject Alternative Names (SANs): Additional domain names or subdomains covered by the same certificate. Missing SANs are a common reason for certificate rejection.
  • Key Algorithm: Identifies if the request uses RSA or ECC (Elliptic Curve Cryptography).
  • Key Size: The bit length of the public key (e.g., 2048-bit, 4096-bit). Modern security standards require at least 2048 bits for RSA keys.
  • Location Details: Country (C), State (ST), and Locality (L) fields which are strictly validated by CAs.

Browser Compatibility

Because our tool relies on standard Web APIs and pure JavaScript parsing libraries, it offers exceptional cross-platform compatibility. You can securely decode CSRs on any modern system without installing OpenSSL locally.

  • Desktop Browsers: Fully supported on Google Chrome, Mozilla Firefox, Apple Safari, and Microsoft Edge.
  • Mobile Environments: Works flawlessly on iOS Safari and Android Chrome, allowing you to troubleshoot server certificates directly from your smartphone while on the go.
  • Offline Capability: Once the page is loaded, you can disconnect from the internet and continue to decode CSRs safely and securely.

Troubleshooting Common CSR Errors

Even with proper tools, generating CSRs can be prone to errors. Here are the most common issues developers face when submitting a CSR to a Certificate Authority:

  • "CSR Invalid Format" or "ASN.1 parsing error": This almost always means your PEM headers (-----BEGIN CERTIFICATE REQUEST----- and -----END CERTIFICATE REQUEST-----) are missing, misspelled, or have trailing whitespace. The text block must be exactly 64 characters wide per line.
  • "Common Name (CN) is invalid": The CN must be a fully qualified domain name (FQDN) like api.example.com. It cannot contain spaces, wildcards in the wrong position (e.g., www.*.com), or HTTP protocols (e.g., https://example.com).
  • "Missing Subject Alternative Names (SANs)": Modern browsers strictly require the domain to be in the SAN extension. If your CA complains about missing SANs, you must regenerate the CSR and explicitly pass the SAN extension via OpenSSL config.

Security Best Practices for CSRs

When dealing with public key infrastructure (PKI), strict operational security is mandatory:

  • Never share the Private Key: The CSR is meant to be public and shared with the CA. The .key file generated alongside it MUST remain completely secret and heavily restricted (chmod 600) on your server.
  • Rotate Keys on Renewal: Never reuse the same private key/CSR combination for consecutive years. Always generate a fresh private key and a fresh CSR when renewing your SSL certificate to limit the blast radius if a key is eventually compromised.
  • Use Elliptic Curve (ECC): While RSA 2048-bit is standard, ECC (prime256v1 or secp384r1) provides stronger cryptographic security with significantly smaller key sizes and faster TLS handshake speeds. Check if your CA supports ECC CSRs.

Command Line (CLI) Alternatives

While our visual decoder is perfect for quick sanity checks, you can also natively decode and inspect CSRs directly from your Linux or macOS terminal using OpenSSL:

# Decode and read a CSR in plain text
openssl req -in request.csr -noout -text

# Verify the cryptographic signature of a CSR
openssl req -in request.csr -noout -verify

# Extract just the Public Key from the CSR
openssl req -in request.csr -noout -pubkey

How to Use the CSR Decoder

  1. Obtain the PEM-encoded Certificate Signing Request from your server.
  2. Paste the CSR text (including BEGIN and END headers) into the tool.
  3. The decoder instantly parses the request using client-side JavaScript.
  4. Verify that the Common Name (CN) and Organization details are correct.
  5. Confirm that all required Subject Alternative Names (SANs) are present.

Common Use Cases

  • Verifying Common Name (CN) spelling before purchasing an SSL/TLS certificate.
  • Checking that all Subject Alternative Names (SANs) are included in a multi-domain CSR.
  • Confirming the key algorithm (RSA vs ECC) and key size meets security requirements.
  • Validating Organization and Country fields for OV and EV certificate applications.
  • Auditing CSRs generated by automated tools like certbot or openssl to catch misconfigurations.

Frequently Asked Questions

What is a CSR (Certificate Signing Request)?

A CSR is a block of PEM-encoded text generated on the server where your SSL/TLS certificate will be installed. It contains your domain name (Common Name), organization details, and public key. You submit the CSR to a Certificate Authority (CA) like Let's Encrypt, DigiCert, or Comodo to receive a signed SSL certificate.

Why should I decode my CSR before submitting it?

Decoding lets you verify that the Common Name (CN), Organization, and Subject Alternative Names (SANs) are correct before purchasing. Typos in these fields cannot be corrected after the certificate is issued, requiring you to regenerate the CSR and repurchase. A 30-second check here can save hours of troubleshooting.

Is it safe to paste my CSR here?

Yes. A CSR contains only your public key and identity information — never your private key. Even so, this tool decodes your CSR entirely inside your web browser using the node-forge library. Nothing is uploaded to any server. You can verify this by checking your browser DevTools Network tab.

What key size should my CSR use?

For RSA keys, a minimum of 2048-bit is required by all major Certificate Authorities. 4096-bit RSA provides stronger security but is slower. For ECC (Elliptic Curve) keys, 256-bit (P-256) is the standard and provides equivalent security to 3072-bit RSA with significantly better performance.

What are Subject Alternative Names (SANs)?

SANs allow a single certificate to cover multiple domain names. For example, a certificate for example.com might include SANs for www.example.com, api.example.com, and mail.example.com. Modern browsers require the domain to be listed in the SAN field, not just the Common Name.

Does my CSR contain my private key?

No. A CSR only contains your public key and identity information. It is mathematically linked to your private key, but it is impossible to derive the private key from the CSR. This is why it is safe to send a CSR to a Certificate Authority.

Can I use the same CSR to renew an SSL certificate?

Technically yes, but it is highly discouraged. Security best practices dictate that you should generate a brand new private key and a new CSR every time you renew your certificate to protect against key compromise over time.

What is a Challenge Password in a CSR?

A challenge password is an optional, obsolete attribute sometimes requested by older Certificate Authorities to verify revocation requests later. Modern CAs (like Let's Encrypt or DigiCert) ignore it completely. It is recommended to leave it blank.

Why is my CSR invalid?

Common reasons for invalid CSRs include missing the BEGIN/END headers, incorrect PEM formatting (line breaks in the wrong places), using unsupported algorithms, or generating the CSR with an empty Common Name (CN).

Related Tools