Certificate Decoder

Paste one or more certificates or a certificate request (CSR), or open .pem, .crt, .cer, .der or .csr files. See who the certificate is for, who issued it, when it expires and what it may be used for; put a chain in order, check its signatures and test a host name. Everything is read inside your browser.

Certificate Decoder

or drop a file here. It stays on this device.

How it works

  1. Paste PEM text (as many -----BEGIN CERTIFICATE----- blocks as you like, or a CERTIFICATE REQUEST), or open certificate files; DER files are shown as PEM.
  2. Optionally enter a host name to check and a date to check validity on.
  3. Press Decode. Read the chain (leaf first, each signature checked where the browser can, or the reason it is not) and each certificate's details, and download PEM, DER, the ordered chain or a JSON report.

Questions

What does the chain check prove, and what not?

It puts the certificates in order by matching each issuer to a subject (and key identifiers where present), checks each signature with your browser's own cryptography where it can (one whose issuer is not in the text, or whose algorithm the browser does not offer, is marked not checked, with the reason), and checks that each issuer is a CA that may sign certificates, that path length limits hold and that every certificate is within its dates. It says when the chain ends at a self-signed root and when an issuer is missing. It does not say whether a root is trusted: that depends on the trust store of your system or browser, which this page has no access to, and it does not check revocation (OCSP or CRLs), because that would need network requests.

Which algorithms can be checked?

Signatures with RSA (PKCS #1 v1.5 with SHA-1, SHA-256, SHA-384 or SHA-512, and RSASSA-PSS), ECDSA on P-256, P-384 and P-521, and Ed25519 where the browser supports it. Anything else (DSA, Ed448, brainpool curves, MD5 or SHA-224) is still decoded but its signature is marked not checked, with the reason. SHA-1 signatures are checked, but they are weak and no longer accepted by browsers for websites.

How is the host name matched?

Against the DNS names and IP addresses in the Subject Alternative Name of the first certificate in the chain, as browsers do; the Common Name is not used. A wildcard such as *.example.com covers exactly one label: a.example.com, but not example.com or a.b.example.com. You can type a name, an IP address or a whole URL; the port and path are ignored.

What if I paste a private key?

Private-key blocks (anything whose label contains PRIVATE KEY) are recognised by their label and never decoded, and the page tells you one was found. Nothing leaves this device either way, but a private key should not be pasted into web pages or shared; keep it on the server that uses it and replace it if it may have been exposed. This tool does not create keys or CSRs.

How was the decoder tested?

Every field it shows was compared with the Python cryptography library on 147 public root certificates and on test certificates covering RSA, RSA-PSS, ECDSA, Ed25519, SHA-1, Unicode and BMP-encoded names and all the common extensions, with no differences; signature checks were compared with that library's own verification. Malformed or cut-off input is refused with a message instead of being guessed at.

Is my text uploaded?

No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.

Do I need an account or to pay?

No. These basic tools are free and add nothing to your data. The only limits are the tool's own: pasted text up to 2 MB, files up to 1 MB each. Within them, the practical limit is your device's memory.

What does this page keep in my browser?

Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.

Questions or problems

Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.