Vaultools
Menu
network requests sent: 0

X.509 Certificate Decoder

Paste a PEM certificate — or a whole chain — to see who it was issued to, who issued it, when it expires, which hostnames it covers, and what its extensions allow. Decoding happens locally in your browser. This tool never validates a chain or checks revocation, because that would mean contacting someone, and nothing you paste leaves this page.

Ad · placeholder

Your ad could be here — privacy-respecting, no tracking.

Go Pro to remove this →

What this tool does and doesn't do

A certificate is public by design: it's handed to every client that connects to a server. So the certificate itself isn't secret — but pasting it into a random website is still a poor habit, because the same box also invites people to paste CSRs, bundles that include the private key, and internal certificates whose hostnames reveal your infrastructure. A decoder that never sends anything removes the question.

This tool reads the certificate's own contents and stops there. It does not build or validate a chain, verify the signature, check revocation (CRL or OCSP), or compare against a trust store. Each of those needs either a set of trusted roots or a network request, and "is this certificate trusted?" is a different question from "what does this certificate say?".

If a private key is pasted alongside a certificate, it is skipped and never displayed. A private key should never go into any website; if one has been exposed, treat it as compromised and rotate it.

Reading a certificate

PEM, DER and the BEGIN line

DER is the binary encoding of a certificate. PEM is that same binary, Base64-encoded and wrapped between text markers so it survives email and copy-paste. The marker names what's inside: CERTIFICATE for a certificate, CERTIFICATE REQUEST for a CSR, PUBLIC KEY for a bare public key, and PRIVATE KEY (or RSA PRIVATE KEY, EC PRIVATE KEY) for the one thing you must never share. A chain file is just several certificate blocks back to back.

Subject, issuer and self-signed certificates

The subject is who the certificate identifies; the issuer is the certificate authority that signed it. When they're identical the certificate is self-signed — normal for a root CA and for a development certificate, and a red flag on a public website. Names are lists of attributes such as C (country), O (organization) and CN (common name).

Subject Alternative Names, not the common name

Browsers match the hostname you typed against the Subject Alternative Name (SAN) extension, not the common name. A certificate whose only hostname is in the CN will be rejected by modern clients. SANs can be DNS names (including wildcards like *.example.com, which covers exactly one label), IP addresses, email addresses and URIs.

Key Usage and Extended Key Usage

Key Usage says which cryptographic operations the key may perform: digitalSignature, keyEncipherment, keyCertSign (signing other certificates) and so on. Extended Key Usage narrows the purpose:

Basic Constraints and path length

CA: TRUE marks a certificate that may sign others; an ordinary server certificate says CA: FALSE. A path length limits how many intermediate CAs may sit below this one — a path length of 0 means it can sign only end-entity certificates.

Fingerprints

A fingerprint is a hash of the certificate's DER bytes, used to identify a specific certificate without comparing every byte. Browsers and pinning configuration use SHA-256; SHA-1 fingerprints still appear in older tooling. The values shown here are computed with your browser's own Web Crypto API and match what openssl x509 -fingerprint prints.

FAQ

How do I get a certificate to paste in?

To fetch the chain a server presents:

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null

Copy the BEGIN CERTIFICATE blocks it prints. To cross-check this tool against OpenSSL for a local file, use openssl x509 -in cert.pem -noout -text.

Does "valid" here mean the certificate is trusted?

No. "Valid" only means the current date falls inside the certificate's validity window, compared against your browser's local clock. It says nothing about whether the issuer is trusted, whether the signature checks out, or whether the certificate has been revoked.

Why is an intermediate or root shown as "leaf" or "self-signed"?

The role label is worked out from the certificate's own fields — whether the issuer equals the subject and whether Basic Constraints says CA: TRUE — not from its position in what you pasted. A certificate with no Basic Constraints at all is treated as an end-entity certificate.

Can it decode a CSR or a CRL?

Not yet. Those blocks are skipped with a note. A separate CSR decoder is planned.

Related glossary terms