TLS Certificate Decoder

Paste a PEM certificate and decode every X.509 field in your browser.

Ad placeholder (leaderboard)

A TLS certificate in PEM form is just Base64-encoded ASN.1 DER between -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----. Inside is an X.509 structure that binds a server’s public key to one or more hostnames and is signed by a certificate authority. This decoder reads that structure in your browser and lays out the fields you actually need when debugging a TLS handshake or a misissued cert.

How it works

An X.509 Certificate is SEQUENCE { tbsCertificate, signatureAlgorithm, signatureValue }. The decoder:

  1. Base64-decodes the PEM body to raw DER bytes.
  2. Parses the ASN.1 tag/length/value tree.
  3. Walks tbsCertificate to read, in order: version, serial number, signature algorithm, issuer (Distinguished Name), validity (not-before / not-after), subject (DN), the public-key info, and the extensions — including the Subject Alternative Name (OID 2.5.29.17).

Distinguished Names are decoded by reading each RelativeDistinguishedName and mapping its attribute OID (CN 2.5.3.3, O 2.5.4.10, etc.) to a readable label.

Example

A typical decode looks like:

Subject:    CN=example.com
Issuer:     CN=R3, O=Let's Encrypt
Valid from: 2026-01-01T00:00:00Z
Valid to:   2026-04-01T00:00:00Z
SANs:       example.com, www.example.com
Signature:  sha256WithRSAEncryption
Status:     Valid (in date)

Notes

The tool reads the not-before / not-after times as UTCTime (YYMMDDHHMMSSZ, with the 50-year pivot) or GeneralizedTime (YYYYMMDDHHMMSSZ). The serial number is shown as hex. If an extension OID is unknown it is skipped rather than guessed. Everything runs locally, so you can paste production certificates safely.

Ad placeholder (rectangle)