Skip to content
LookupOwl

CSR decoder

Check that a certificate signing request says what you meant before you send it to a certificate authority.

Starts with -----BEGIN CERTIFICATE REQUEST----- (or NEW CERTIFICATE REQUEST). Up to 64 KB. With JavaScript on, it is decoded in your browser and nothing you paste is sent to us.

What a CSR holds, and what it does not

A certificate signing request is the form you hand to a certificate authority. It holds your public key, the name you want in the certificate and any extensions you ask for, all signed with your private key so the authority knows you have it. It never holds the private key itself.

Mistakes in a CSR cost you a reissue, and some cost money. Pasting it here first shows exactly what the authority will see, in plain words, before you send it.

What the decoder shows

  • Whether the signature checks out. We verify the request against the public key inside it, which proves whoever made it held the matching private key.
  • The names you asked for, and whether the common name is among them. Most authorities now issue for the names list only.
  • A "will and won't be issued" list: the common name and each requested name are used, and fields such as organisation, city and state are ignored for domain-validated certificates.
  • The key type and size, with a strength meter, and the signature algorithm.
  • Any extensions you requested, and the openssl req command that shows the same thing.

Making a request that passes

With a recent OpenSSL you can make a key and a request in one step, with the names in the right place:

Shell
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \
  -keyout example.key -out example.csr \
  -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Keep the key file secret and send only the .csr. When the authority returns your certificate, read it with the certificate decoder and check that the names and dates are what you ordered.

Where your paste goes

With JavaScript on, the request is decoded in your browser and nothing you paste is sent to us. Without JavaScript the form sends the text to our server in the address of the request; the server decodes it and keeps no copy. A CSR holds only public data, but people sometimes paste the private key next to it by mistake. If a PRIVATE KEY block is in the box, we clear it and read nothing, and you should replace that key.

Questions people ask

Does the CSR contain my private key?

No. It holds the public key and the details you want in the certificate, signed with the private key. If you see a PRIVATE KEY block next to it, that is a separate file and it should never be pasted into a website.

What does "signature checks out" mean?

The request was signed by the private key that matches the public key inside it. An authority checks this too. If it fails, the file was changed after it was signed or made incorrectly, and you should make a new one.

Why are my organisation and city ignored?

For a domain-validated certificate the authority checks control of the name only, so it does not put organisation, city, state or country into the certificate. Organisation-validated and extended-validation certificates do verify and include them.

How big should the key be?

RSA keys must be at least 2048 bits for public certificates, and 3072 or 4096 are common choices. Elliptic curve keys on P-256 or P-384 are smaller and faster and are accepted everywhere that matters today.

Can I decode a request for an IP address or an email?

Yes. Names of every kind that a request can carry are listed: DNS names, IP addresses and email addresses. Whether an authority will issue for them depends on its own rules.

Use it from AI, the API or the command line

Every LookupOwl tool is also a free API and an MCP tool, with no key and no account. This one is x509_decode. Please be kind to the rate limits.

curl
curl "https://lookupowl.com/api/v1/tools/x509-decode?q=-----BEGIN+CERTIFICATE-----%0AMIIC2DCCAn6gAwIBAgIUGa7LpiZt4UbfIC7C9Wat424pXOgwCgYIKoZIzj0EAwIw%0AVTELMAkGA1UEBhMCVVMxGTAXBgNVBAoMEEV4YW1wbGUgVHJ1c3QgQ28xKzApBgNV%0ABAMMIkV4YW1wbGUgVHJ1c3QgVExTIElzc3VpbmcgRUNDIENBIDEwHhcNMjYxMTAx%0AMDAwMDAwWhcNMjcwNDMwMDAwMDAwWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZ%0AMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLe4Q%2FzxYvGoxvhWTZEN%2FqdFjJ6qE9II%0AVew5%2BAewmjnB8WcUS7KllkgZJtArv1TT3E4ZtBWauZUQJqm9MgpDR8mjggFpMIIB%0AZTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB%2FwQEAwIHgDATBgNVHSUEDDAKBggrBgEF%0ABQcDATAlBgNVHREEHjAcggtleGFtcGxlLmNvbYINKi5leGFtcGxlLmNvbTAjBgNV%0AHSAEHDAaMAgGBmeBDAECATAOBgwrBgEEAYaNHwEDAQEwaQYIKwYBBQUHAQEEXTBb%0AMDMGCCsGAQUFBzAChidodHRwOi8vY2EuZXhhbXBsZS50ZXN0L2lzc3VpbmctY2Et%0AMS5jZXIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmV4YW1wbGUudGVzdDA5BgNV%0AHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLmV4YW1wbGUudGVzdC9pc3N1aW5nLWNh%0ALTEuY3JsMB0GA1UdDgQWBBR4GImtN51nNRWwWd3YTucnLrG1dDAfBgNVHSMEGDAW%0AgBQBu%2BoquOPaoXGTys7WE7kDlmqIlDAKBggqhkjOPQQDAgNIADBFAiEA48r0yvzw%0AB29%2B9Yoh7%2FBHJdZOVXTeSG%2FUiPIb1J7IPkcCIBShFmMpRjiK1q9XGaaMuLFpkcwh%0A7WxHQclhnWV3ZzMc%0A-----END+CERTIFICATE-----"
MCP
claude mcp add --transport http lookupowl https://lookupowl.com/mcp