Use this free online SSL/TLS Certificate Decoder directly in your browser. No signup required, no data leaves your device. Part of Utilier — a collection of 133+ developer utilities.
What is SSL Certificate Decoder & Viewer (PEM, CRT, CER)?
SSL certificate decoder parses and displays details from SSL/TLS certificates (used for HTTPS, email encryption, code signing). Paste certificate in PEM format (-----BEGIN CERTIFICATE-----) or upload CRT, CER, DER files. Tool extracts: issuer (Certificate Authority like Let's Encrypt, DigiCert), subject (domain name), expiry date (valid from/until), Subject Alternative Names (SANs, additional domains), public key (RSA, ECDSA), signature algorithm (SHA-256, SHA-384), serial number, and fingerprints (SHA-1, SHA-256). Useful for debugging SSL errors (domain mismatch, expired cert, invalid chain), verifying certificates before deployment, or learning certificate structure (X.509 format).
Certificate details: Issuer (CA: Let's Encrypt, DigiCert, Cloudflare), subject (CN=example.com, O=Company), validity period (valid from 2024-01-01 to 2025-01-01), expiry countdown.
Subject Alternative Names (SANs): List of domains covered: example.com, www.example.com, api.example.com. Multi-domain (SAN) certificates cover multiple subdomains.
Public key information: Algorithm (RSA 2048-bit, ECDSA P-256), modulus, exponent. Used for encryption and signature verification.
Signature and fingerprints: Signature algorithm (SHA256withRSA, ECDSA-SHA384), certificate fingerprints (SHA-1, SHA-256). Used for certificate pinning or verification.
Chain validation: Verify certificate chain (leaf → intermediate → root CA). Check if certificate is trusted (valid chain to known root CA).
Why use SSL decoder?
SSL certificate errors are common (expired cert, domain mismatch, invalid chain). This tool helps debug and verify certificates.
Debug SSL errors: Certificate expired? Domain mismatch (cert for example.com, visited www.example.com)? Invalid chain (intermediate CA missing)? Tool shows details for troubleshooting.
Verify before deployment: Check certificate before installing on server: correct domains (SANs), valid dates, correct issuer. Avoid deployment failures.
Check expiry date: See when certificate expires (valid until 2025-01-01, 90 days remaining). Set renewal reminder to avoid downtime.
Compare certificates: Compare staging vs production certificates (same issuer? same SANs?). Verify renewal worked (new expiry date).
Learn certificate structure: See X.509 certificate fields: issuer, subject, extensions (SANs, key usage), signature. Great for learning PKI (Public Key Infrastructure).
Extract public key: Get public key for encryption, signature verification, or certificate pinning. Useful for API security or mobile apps.
When to use SSL decoder
Use whenever you need to inspect or verify SSL/TLS certificates.
Verifying certificate before deploying to server (correct domains, valid dates, correct issuer).
Checking when certificate expires (set renewal reminder, avoid downtime).
Extracting Subject Alternative Names (which domains are covered by cert).
Comparing certificates (staging vs production, old vs new after renewal).
Getting fingerprints for certificate pinning (mobile apps, API security).
Learning how SSL certificates work (issuer, subject, SANs, public key, signature).
How to use SSL decoder
Paste certificate (PEM) or upload file (CRT, CER, DER).
Paste certificate (PEM format): Copy certificate starting with -----BEGIN CERTIFICATE----- and ending with -----END CERTIFICATE-----. Get from server (openssl s_client), browser (view cert), or file.
Or upload file: Upload .crt, .cer, .pem (PEM format), or .der (binary format). Tool auto-detects format and decodes.
View certificate details: See: issuer (Let's Encrypt, DigiCert), subject (example.com), validity (valid from/until, days until expiry), SANs (additional domains).
Check Subject Alternative Names: List of domains covered (example.com, www.example.com, *.example.com). If visiting www but cert only has example.com, browser shows domain mismatch error.
Verify expiry date: See valid until date (2025-01-01) and countdown (90 days remaining). Set reminder to renew before expiry (avoid downtime).
View public key: See algorithm (RSA 2048-bit, ECDSA P-256), modulus, exponent. Copy for encryption or signature verification.
Check signature and fingerprints: Signature algorithm (SHA256withRSA). Fingerprints (SHA-1, SHA-256) for certificate pinning or verification.
Key features
Certificate details: Issuer, subject, validity period (from/until), expiry countdown, version, serial number.
Subject Alternative Names: List of domains covered by certificate (SANs). Multi-domain certs cover example.com, www.example.com, etc.
Public key info: Algorithm (RSA, ECDSA), key size (2048-bit, 256-bit), modulus, exponent. Used for encryption.
Fingerprints: SHA-1 and SHA-256 fingerprints. Used for certificate pinning (mobile apps) or verification.
Chain validation: Check if certificate chain is valid (leaf → intermediate → root CA). Verify trust.
Multiple formats: Supports PEM (.pem, .crt, .cer), DER (.der binary), and text paste. Auto-detects format.
Common use cases
Debug domain mismatch error: Browser shows 'domain mismatch' (cert for example.com, visited www.example.com). Decode cert → check SANs. If www.example.com not in SANs, cert is invalid for www.
Check certificate expiry: Decode cert → see valid until 2025-01-01 (90 days remaining). Set reminder to renew cert before expiry (Let's Encrypt certs expire in 90 days).
Extract SANs for wildcard cert: Wildcard cert (*.example.com) covers: www.example.com, api.example.com, blog.example.com. Decode → see SANs list. Does NOT cover example.com (root domain).
Get fingerprint for pinning: Mobile app pins certificate (prevents MITM). Decode cert → get SHA-256 fingerprint (abc123...). Add to app config.
Compare old vs new cert after renewal: Renewed cert → decode both. Compare: same issuer? same SANs? new expiry date? Verify renewal succeeded.
Base64-encoded certificate with header/footer: -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----. Human-readable text. Used by Apache, Nginx, Let's Encrypt.
DER format
Binary encoding of X.509 certificate. Smaller than PEM but not human-readable. Used by Windows (.cer, .crt files). Tool decodes both PEM and DER.
Issuer
Certificate Authority (CA) that signed the certificate. Example: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US. Browsers trust cert if issuer is in root CA store.
Valid from (not before) and valid until (not after) dates. Example: 2024-01-01 to 2025-01-01 (1 year). Let's Encrypt: 90 days. Paid CAs: 1-2 years.
Public key
Algorithm: RSA (2048, 3072, 4096-bit) or ECDSA (P-256, P-384). Contains modulus (n) and exponent (e) for RSA. Used for encryption and signature verification.
Signature algorithm
Algorithm used to sign certificate: SHA256withRSA (common), SHA384withECDSA, SHA1withRSA (deprecated). Signature proves cert is issued by CA (not tampered).
Fingerprints
Hash of certificate: SHA-1 (deprecated, 40 hex chars), SHA-256 (64 hex chars). Used for certificate pinning or verification. Unique per certificate.
Common mistakes to avoid
Certificate doesn't include www (SANs only have example.com, not www.example.com)
Why it happens: Visiting www.example.com with cert for example.com only → browser shows domain mismatch error. SANs must include both example.com and www.example.com (or wildcard *.example.com).
How to avoid it: When requesting cert, include all domains in SANs: example.com, www.example.com. Or use wildcard *.example.com (covers www, api, blog). Let's Encrypt allows multiple SANs for free.
Certificate expired (forgot to renew, site shows security warning)
Why it happens: Certificates have expiry date (Let's Encrypt: 90 days, paid CAs: 1-2 years). After expiry, browsers show 'certificate expired' error (security warning, red padlock). Users can't access site.
How to avoid it: Set renewal reminder 30 days before expiry. Automate renewal (Let's Encrypt: certbot --renew). Monitor expiry with tools (SSL Labs, certificate monitoring services).
Why it happens: Certificate chain: leaf (your cert) → intermediate CA → root CA. If intermediate is missing, browsers can't verify chain (untrusted cert). Common when downloading cert without intermediate.
How to avoid it: Install full chain: cat domain.crt intermediate.crt > fullchain.crt. Let's Encrypt provides fullchain.pem (includes intermediate). Nginx: ssl_certificate fullchain.pem.
Using SHA-1 signature (deprecated, insecure)
Why it happens: SHA-1 is broken (collisions possible). Browsers distrust SHA-1 certs since 2017. Modern certs use SHA-256 or SHA-384. Using SHA-1 → browser warning or rejection.
How to avoid it: Request new cert with SHA-256 or SHA-384 signature. All modern CAs (Let's Encrypt, DigiCert) use SHA-256 by default. Check signature algorithm when decoding cert.
Certificate for wrong domain (cert for old-domain.com, site is new-domain.com)
Why it happens: Installed wrong certificate (forgot to update after domain change). Browsers show domain mismatch. Common when migrating to new domain or renewing cert for old domain.
How to avoid it: Verify subject and SANs match your domain. Request new cert for new-domain.com. Don't reuse old cert for different domain.
Frequently asked questions
What is a Subject Alternative Name (SAN)?
Extension listing additional domains covered by certificate. Example: SANs = example.com, www.example.com, api.example.com. Single cert can cover multiple domains.
What is the difference between PEM and DER format?
PEM = base64-encoded text (-----BEGIN CERTIFICATE-----). DER = binary. PEM is human-readable, DER is smaller. Apache/Nginx use PEM, Windows uses DER (.cer).
How long are SSL certificates valid?
Let's Encrypt: 90 days (free, auto-renew). Paid CAs: 1-2 years max (browsers limit to 398 days since 2020). Renew before expiry to avoid downtime.
What is a wildcard certificate (*.example.com)?
Covers all subdomains (www, api, blog) under example.com. Does NOT cover root domain (example.com) unless listed in SANs. Example: *.example.com + example.com.
Why does my browser say 'certificate expired'?
Certificate valid until date passed. Renew certificate immediately. Check expiry date by decoding cert. Set renewal reminder 30 days before expiry.
What is certificate pinning?
Mobile apps pin certificate fingerprint (SHA-256) to prevent MITM attacks. App only trusts specific cert, not any valid CA-issued cert. Decode cert to get fingerprint.