AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I decode an SSL/TLS certificate online?

Paste your PEM certificate (the block that starts with -----BEGIN CERTIFICATE-----) into the SSL Certificate Decoder and it is parsed instantly in your browser. A hand-written X.509 / ASN.1 engine reads the subject and issuer, validity dates with a live days-until-expiry badge, serial number, signature algorithm, public key type and size, Subject Alternative Names, key usage and the SHA-1 and SHA-256 fingerprints — all locally, with nothing uploaded. It reads the certificate; it does not verify the trust chain or check revocation.

  • Paste one or many PEM certificates; each is decoded separately (paste a whole chain)
  • Shows subject / issuer RDNs, SANs, key usage, extended key usage and basic constraints
  • Live expiry countdown with EXPIRED / expiring-soon / valid badge and weak-key warnings
  • SHA-1 & SHA-256 fingerprints of the DER via the Web Crypto API — matches OpenSSL
  • Everything runs in your browser (RFC 5280 / X.690); the PEM text is never uploaded

What is

SSL Certificate Decoder

An SSL (X.509) certificate decoder is a tool that takes the Base64 PEM or binary DER encoding of a TLS certificate and parses its ASN.1 structure into human-readable fields — subject, issuer, validity period, serial number, public key, signature algorithm and extensions such as Subject Alternative Names and key usage. A client-side decoder does this entirely in the browser without sending the certificate to a server. Decoding reveals what a certificate claims; it is distinct from validation, which additionally checks the signature, the chain of trust to a root store and revocation status.

Security & Privacy

Related terms

X.509RFC 5280ASN.1DERPEMSubject Alternative Namecertificate fingerprintTLSpublic key infrastructureOCSPCRLcertificate authority

Frequently Asked Questions

No. The certificate is base64-decoded and parsed entirely in your browser, and the fingerprints are computed by the Web Crypto API — nothing is uploaded.

The SSL Certificate Decoder is 100% client-side. Your PEM text is decoded and walked by a local ASN.1 / X.509 engine written in JavaScript, and the SHA-1 and SHA-256 fingerprints are produced by your browser’s Web Crypto API (crypto.subtle) over the raw DER bytes. There is no backend, upload, database or CDN in the processing path and no analytics. This matters because certificates and chains can expose internal hostnames and infrastructure; here they never leave your device, the tool works offline once cached, and closing the tab erases everything.

No. It reads the certificate but does not verify the signature, build the trust chain, or check revocation (CRL / OCSP). Use it to inspect, not to prove trust.

Decoding and validating are different things. This tool shows exactly what the certificate contains and whether the current date falls within its notBefore/notAfter window, but it does not verify the issuer’s signature, does not build or check the chain up to a trusted root store, and does not query revocation via CRL or OCSP — those require network calls a privacy-first client-side tool deliberately never makes. A certificate can decode perfectly here and still be revoked, self-signed, issued by an untrusted CA, or not matched to the hostname you expect. For real trust, rely on a browser’s TLS handshake or a tool such as openssl verify.

A fingerprint is a SHA-256 (or SHA-1) hash of the certificate’s DER bytes — a short, unique identifier used for certificate pinning and to confirm two certificates are identical.

A certificate fingerprint (or thumbprint) is the cryptographic digest of the entire DER encoding of the certificate. The SHA-256 fingerprint is the modern standard; SHA-1 is still shown for legacy comparison. Because any change to the certificate changes the hash completely, fingerprints let you pin a specific certificate, compare what a server presents against a known-good value, or reference a certificate unambiguously in tickets and documentation. This decoder computes both with the Web Crypto API, so the values match those shown by OpenSSL and your browser’s certificate viewer.

DER is the raw binary ASN.1 encoding of the certificate; PEM is that same DER Base64-encoded and wrapped in -----BEGIN/END CERTIFICATE----- lines.

X.509 certificates are defined in ASN.1 and serialised with DER (Distinguished Encoding Rules), a compact binary tag-length-value format. PEM is simply DER encoded as Base64 text and framed with -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- headers, which makes it safe to paste into email, config files and web forms. This tool accepts PEM (including a full chain of several certificates) and, internally, decodes each block back to DER before parsing it against RFC 5280. The .crt, .cer and .pem file extensions usually hold PEM or DER of exactly this kind.

Detailed Explanation

How It Works

What the SSL Certificate Decoder Does

The SSL Certificate Decoder parses PEM-encoded X.509 certificates entirely in the browser and presents their contents in readable form: subject and issuer distinguished names, validity dates, serial number, signature algorithm, public key, Subject Alternative Names, key usage and other extensions. It accepts a single certificate or a full chain (several PEM blocks) and decodes each independently. Because it is client-side, the certificate text is never transmitted — useful when a certificate reveals internal hostnames or infrastructure.

  • Input: PEM certificate(s) or bare Base64 DER
  • Output: subject / issuer, validity, serial, signature alg, public key, SANs, key usage
  • Handles a whole chain — each certificate is parsed separately
  • Implements RFC 5280 (PKIX) certificate fields and ITU-T X.690 (DER)
  • Runs fully in-browser; the certificate is never uploaded
Methodology

How the Parser Reads a Certificate

A hand-written DER reader (x509Engine.ts) walks the certificate as a tree of ASN.1 Tag-Length-Value nodes — SEQUENCE, SET, INTEGER, OBJECT IDENTIFIER, BIT STRING, OCTET STRING, UTCTime, GeneralizedTime and the string types. It then maps the structure onto the RFC 5280 TBSCertificate: version, serialNumber, signature, issuer Name, validity, subject Name, subjectPublicKeyInfo and the v3 extensions. OIDs are resolved against built-in tables (RDN attributes, signature and public-key algorithms, named curves, extensions and extended key-usage purposes). UTCTime years are interpreted per RFC 5280 (50–99 as 19xx, 00–49 as 20xx).

  • Generic TLV reader: tag class, constructed flag, long-form length, high-tag-number form
  • Public key: RSA modulus bit-length + exponent, or the EC named curve
  • Key Usage decoded from the BIT STRING bits; Basic Constraints CA flag + pathlen
  • SAN GeneralName choices decoded: dNSName, iPAddress, rfc822Name, URI, directoryName
  • No ASN.1 library dependency — the parser is written from scratch
Technical Details

Fingerprints via the Web Crypto API

The SHA-1 and SHA-256 fingerprints are the digests of the exact DER bytes of the certificate, computed with crypto.subtle.digest in the browser. These match the values reported by OpenSSL (openssl x509 -fingerprint -sha256) and by browser certificate viewers, so they can be used for certificate pinning, for confirming that two certificates are byte-identical, or for referencing a certificate unambiguously. SHA-256 is the current standard; SHA-1 is retained only for comparison with legacy systems.

  • Fingerprint = hash of the whole DER, not of any single field
  • Computed locally with the Web Crypto API (crypto.subtle)
  • SHA-256 is standard; SHA-1 shown for legacy comparison
  • Matches OpenSSL and browser certificate-viewer output
  • Used for certificate pinning and byte-for-byte comparison
Limitations

Honest Limitations: Decoding Is Not Validation

This tool reads a certificate; it does not establish trust. It does not verify the issuer’s signature, does not build or validate the chain to a trusted root store, and does not check revocation via CRL or OCSP — all of which require network access a client-side tool deliberately avoids. A certificate can decode cleanly and still be revoked, expired, self-signed, issued by an untrusted CA, or bound to a different hostname. Only a full TLS handshake in a browser, or a validator such as openssl verify, establishes real trust. Uncommon or malformed extensions may appear only in the raw ASN.1 tree.

  • Does NOT verify the signature or the chain of trust to a root store
  • Does NOT check revocation (CRL / OCSP) — those need network calls
  • A decoded certificate may still be revoked, untrusted, or hostname-mismatched
  • Date check is a simple notBefore/notAfter window, not full path validation
  • Use openssl verify or a browser handshake to prove trust
Privacy & Security

Private by Design

Everything happens on your device. The PEM is base64-decoded and parsed by a local ASN.1 engine, and the fingerprints are computed with the Web Crypto API, so the certificate text never touches a server, database, CDN or log. This is important because certificates and chains can disclose internal hostnames, organisational units and infrastructure details. Nothing is persisted, the tool works offline once cached, and closing the tab erases everything; the only optional network use anywhere on the site is consent-gated ads that never see your certificate.

  • No upload, server, database, CDN or telemetry in the processing path
  • Certificate and chain details never leave your device
  • Nothing persisted; works offline once cached
  • Closing the tab erases everything
  • Only optional network use is consent-gated ads that never see your certificate
Decoding vs validating an SSL certificate
CapabilityThis decoderFull validation
Read subject / issuer / SANs / extensionsYes — locallyYes
Show validity dates & expiry countdownYesYes
Compute SHA-1 / SHA-256 fingerprintsYes — Web CryptoYes
Verify issuer signatureNoYes
Build / check chain to a trusted rootNoYes
Check revocation (CRL / OCSP)No — no networkYes
Send certificate to a serverNeverDepends on tool

This tool decodes and inspects a certificate entirely in the browser; it does not prove the certificate is currently trusted. Use openssl verify or a browser TLS handshake for validation. As of July 2026.