SSL Certificate Decoder

Paste a PEM certificate or upload a .crt / .pem file to instantly decode subject, issuer, validity, Subject Alternative Names, key info, fingerprints and the full certification chain — no server, all in your browser.

PEM / CRT Certificate
Paste a PEM certificate or upload a file
to inspect its details and chain

What Is an X.509 Certificate?

An X.509 certificate is a standardized digital document that binds a public key to an identity — a domain name, organization, or individual. Defined by RFC 5280, X.509 is the foundation of TLS/SSL, HTTPS, S/MIME email encryption, code signing, and virtually every PKI (Public Key Infrastructure) system in use today. Every time your browser shows a padlock, it has validated an X.509 certificate.

Certificates are issued by a Certificate Authority (CA) — a trusted entity that vouches for the identity of the certificate holder by signing the certificate with its own private key. Modern certificates use PEM format for text exchange and DER for binary storage.

PEM vs DER vs CRT vs CER — Certificate Formats Explained

Despite the different file extensions, these are usually the same underlying X.509 data in different encodings:

  • DER — The raw binary encoding (Distinguished Encoding Rules, a subset of ASN.1). Every certificate is DER at its core.
  • PEM — Base64-encoded DER wrapped in -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- headers. The most common text format; can contain multiple certificates in a single file (full chain).
  • .crt / .cer — Usually PEM, sometimes DER. The extension does not reliably indicate the encoding.
  • .p7b / .p7c — PKCS#7 bundle, often used by Windows to ship the full chain.
  • .pfx / .p12 — PKCS#12, includes both the certificate and the private key (password-protected); not supported by this tool.

This tool accepts any PEM input: paste a single certificate, a full chain bundle, or upload a file. It automatically detects and separates multiple PEM blocks.

Understanding the Certificate Chain

A certificate chain (also called a chain of trust) is a sequence of certificates where each one has been signed by the next. The chain typically has three levels:

  • End-entity certificate — The leaf certificate issued to a specific domain or entity (e.g., example.com). It cannot sign other certificates (CA: false in Basic Constraints).
  • Intermediate CA — Signed by the root, it signs end-entity certificates. Intermediates allow CAs to operate without exposing the root private key online.
  • Root CA — Self-signed (issuer = subject), pre-installed in operating systems and browsers. Trusted by design, not by chain verification.

When validating a TLS connection, the client builds a path from the server's certificate up to a trusted root. All three levels must be present and valid. This tool displays the full chain when you paste multiple PEM blocks.

Key Fields Decoded

  • Subject — Who the certificate was issued to. CN (Common Name) is the primary identifier; for TLS certs it was traditionally the domain, now superseded by SANs.
  • Issuer — Who signed the certificate. For root CAs, issuer equals subject (self-signed).
  • Validity — The Not Before / Not After window. Certificates presented outside this window must be rejected.
  • Subject Alternative Names (SANs) — The authoritative list of domains, IP addresses, or emails this certificate covers. Browsers use SANs exclusively since 2017.
  • Key Usage — Restricts what the public key can be used for: Digital Signature, Key Encipherment, Key Cert Sign, etc.
  • Extended Key Usage (EKU) — Further narrows usage: TLS Server Authentication, Client Authentication, Code Signing, etc.
  • Fingerprints — SHA-256 and SHA-1 hashes of the DER-encoded certificate. Used to uniquely identify and pin certificates.

Common Use Cases

Export cert from Chrome

Click the padlock → Connection is secure → Certificate is valid → Details tab → Copy to file → Base64 PEM. Then paste it here.

Extract from a server

openssl s_client -connect example.com:443 \
  -showcerts 2>/dev/null \
  | openssl x509 -outform PEM

Read a local .crt file

openssl x509 -in cert.crt \
  -text -noout

Or just upload it here to get the same info in a readable UI.

Fetch the full chain

openssl s_client -connect example.com:443 \
  -showcerts 2>/dev/null \
  | sed -n '/BEGIN/,/END/p'

Paste the multi-cert output to see the full chain here.

Frequently Asked Questions