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)
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.
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
Capability
This decoder
Full validation
Read subject / issuer / SANs / extensions
Yes — locally
Yes
Show validity dates & expiry countdown
Yes
Yes
Compute SHA-1 / SHA-256 fingerprints
Yes — Web Crypto
Yes
Verify issuer signature
No
Yes
Build / check chain to a trusted root
No
Yes
Check revocation (CRL / OCSP)
No — no network
Yes
Send certificate to a server
Never
Depends 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.