Skip to content

sslsecurityhosting

SSL Certificate Checker: How to Check If a Website Has SSL

Check an SSL certificate four ways: a free SSL certificate checker, the browser address bar, openssl and curl, and Certificate Transparency logs. Includes real command output and what each certificate error means.
Piotr Kulpinski
02 Apr 2026•8 min read
SSL Certificate Checker: How to Check If a Website Has SSL

A website has SSL when it serves pages over https:// with a certificate that your browser trusts. To check if a website has SSL, look at three things: whether the certificate is valid, who issued it, and when it expires. This guide shows four ways to check an SSL certificate, from a one-click SSL certificate checker to openssl on the command line.

Quick Answer: Enter the domain into a free SSL certificate checker. It connects to the site on port 443 and shows whether the certificate is valid and trusted, the issuer, the expiry date, the hostnames it covers and the full chain. For a quick look without a tool, click the icon left of the address bar and open the certificate details.

What SSL/TLS is

SSL (Secure Sockets Layer) and its successor TLS (Transport Layer Security) encrypt the connection between a browser and a web server. TLS replaced SSL long ago, but people still say "SSL certificate" for the certificate a site uses for TLS.

A valid certificate proves two things. The connection is encrypted, and the server holds a certificate for the domain in the address bar. It does not prove the site is honest. Google's Chrome team notes that nearly all phishing sites use HTTPS too.

HTTPS still matters for every site. Browsers mark plain HTTP pages as "Not Secure", and Google has used HTTPS as a ranking signal since 2014.

Method 1: Use an SSL certificate checker

An SSL certificate checker shows the full certificate without developer tools. Our free SSL checker runs a live TLS handshake with the server and shows:

  • Status: valid, expiring (30 days or fewer left), expired, untrusted, or a hostname mismatch
  • Issuer: the certificate authority (CA), such as Let's Encrypt, Sectigo or DigiCert
  • Common name and organization: the organization field appears only on OV and EV certificates
  • TLS protocol: the version the server negotiated, such as TLSv1.3
  • Validity: the valid from and valid to dates, and the days left until expiry
  • Covered hostnames: every name in the Subject Alternative Name (SAN) list
  • Certificate chain: every certificate from the site's own up to the root
  • Serial number and fingerprints: SHA-256 and SHA-1

To use it:

  1. Open the SSL checker.
  2. Enter a domain, such as github.com.
  3. Read the status line first. If it says anything other than valid, the banner under it explains the problem.

Try it yourself

Check any website's hosting

Enter a domain or IP to see hosting provider, DNS records, and more.

The same certificate check runs inside the full hosting check, next to the DNS records, IP location and hosting provider. For use in code, the /ssl endpoint of the public API returns the same data as JSON.

Method 2: Check the browser address bar

Every browser shows the connection state left of the address bar. Chrome replaced its padlock with a "tune" icon (two sliders) in Chrome 117, released in September 2023. Firefox still shows a padlock.

What you seeWhat it means
Padlock or tune icon, https://The certificate is valid and the connection is encrypted
"Not Secure" next to the addressThe page loads over plain HTTP, with no encryption
Full-page warning such as "Your connection is not private"The certificate is expired, self-signed, untrusted or for a different hostname

View the certificate in Chrome

  1. Click the tune icon left of the address.
  2. Click Connection is secure.
  3. Click Certificate is valid.
  4. The viewer shows the subject, the issuer and the validity dates.

In Firefox, click the padlock, then Connection secure, then More information, then View Certificate. The browser view works for one site. To see the chain, the SAN list and the days left in one place, use the SSL checker.

Method 3: Check an SSL certificate from the command line

openssl and curl ship with macOS and most Linux systems. The output below comes from github.com, checked on 12 October 2026.

openssl s_client

This command prints the subject, issuer, validity dates and covered hostnames:

echo | openssl s_client -connect github.com:443 -servername github.com 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
subject=CN=github.com
issuer=C=GB, O=Sectigo Limited, CN=Sectigo Public Server Authentication CA DV E36
notBefore=Sep  1 00:00:00 2026 GMT
notAfter=Nov 29 23:59:59 2026 GMT
X509v3 Subject Alternative Name:
    DNS:github.com, DNS:www.github.com

The certificate covers github.com and www.github.com and expires on 29 November 2026. "DV" in the issuer name means it is a Domain Validation certificate.

To see the chain, the TLS version and whether OpenSSL trusts the certificate, keep the handshake output:

echo | openssl s_client -connect github.com:443 -servername github.com 2>&1 \
  | grep -E "depth=|Protocol|Cipher is|Verify return code"
depth=2 C=GB, O=Sectigo Limited, CN=Sectigo Public Server Authentication Root E46
depth=1 C=GB, O=Sectigo Limited, CN=Sectigo Public Server Authentication CA DV E36
depth=0 CN=github.com
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Protocol: TLSv1.3
Verify return code: 0 (ok)

Verify return code: 0 (ok) means the chain leads to a trusted root. Any other code names the problem, for example 10 (certificate has expired).

Always pass -servername. Many servers host several sites on one IP address. They pick the certificate by the hostname the client sends, through Server Name Indication (SNI). Without -servername, you may see a different site's certificate.

curl -vI

curl -vI sends a HEAD request and prints the TLS handshake on the way:

curl -vI https://github.com
* Connected to github.com (140.82.121.4) port 443
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
* Server certificate:
*  subject: CN=github.com
*  start date: Sep  1 00:00:00 2026 GMT
*  expire date: Nov 29 23:59:59 2026 GMT
*  subjectAltName: host "github.com" matched cert's "github.com"
*  issuer: C=GB; O=Sectigo Limited; CN=Sectigo Public Server Authentication CA DV E36
*  SSL certificate verify ok.
< HTTP/2 200

SSL certificate verify ok and the subjectAltName ... matched line mean the certificate is valid for the hostname. If the certificate has a problem, curl stops before the HTTP response and prints an error. The common SSL errors section shows those errors.

Method 4: Search Certificate Transparency logs

Chrome trusts a public certificate only when it appears in public Certificate Transparency (CT) logs (Chrome CT policy). So CAs log the certificates they issue. crt.sh lets you search those logs by domain.

  1. Open crt.sh.
  2. Enter the domain. Use %.example.com to include subdomains.
  3. Each row lists a certificate, its issuer and its validity dates.

CT logs show every certificate issued for a domain, including expired ones and ones for forgotten subdomains. They do not show which certificate a server uses right now. For that, use Method 1 or Method 3.

SSL certificate types

All certificates encrypt the same way. They differ in what the CA checked about the owner before it issued the certificate.

TypeWhat the CA checksOrganization name in the certificate
DV (Domain Validation)Control of the domain onlyNo
OV (Organization Validation)Domain plus the organization's identity and addressYes
EV (Extended Validation)Domain plus a stricter legal, physical and operational checkYes, plus jurisdiction and registration number

The github.com certificate above is DV. Let's Encrypt issues only DV certificates, for free. The guide to SSL certificate types shows a real DV, OV and EV certificate and how to tell them apart.

Common SSL errors and what they mean

The examples below use test sites from badssl.com, which keeps broken certificates online on purpose.

Expired certificate

$ curl -I https://expired.badssl.com
curl: (60) SSL certificate problem: certificate has expired

The "valid to" date has passed. Browsers block the page with a full-page warning. Renew the certificate and set up automatic renewal, for example with Certbot or your host's built-in renewal.

Self-signed certificate

$ curl -I https://self-signed.badssl.com
curl: (60) SSL certificate problem: self signed certificate

The server owner created the certificate, not a trusted CA. A self-signed certificate is fine on a development machine and never on a public site.

Hostname mismatch

$ curl -I https://wrong.host.badssl.com
curl: (60) SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

The hostname you visited is not in the certificate's SAN list. A common cause is a certificate for www.example.com that does not list the bare example.com.

Mixed content

The page loads over HTTPS, but some images, scripts or stylesheets load over plain HTTP. Browsers block the insecure scripts and may drop the padlock. To fix it, change every resource URL to https://.

How long SSL certificates last

The CA/Browser Forum sets the maximum lifetime of public TLS certificates. Its ballot SC-081, passed on 11 April 2025, cuts that maximum in steps. The schedule is in section 6.3.2 of the Baseline Requirements:

Certificate issuedMaximum validity
Before 15 March 2026398 days
From 15 March 2026200 days
From 15 March 2027100 days
From 15 March 202947 days

The 200-day limit applies today. Let's Encrypt certificates already last 90 days by default. Shorter lifetimes mean more renewals, so manual renewal stops being practical. Automate renewal with ACME, through Certbot or the built-in renewal of your host or content delivery network (CDN). Check the expiry date after each renewal.

Frequently Asked Questions

Does every website need SSL?

Yes. Browsers mark HTTP pages as "Not Secure", and Google uses HTTPS as a ranking signal. Let's Encrypt and most hosting providers issue DV certificates for free, so cost is no reason to skip HTTPS.

How do I check when an SSL certificate expires?

Enter the domain in an SSL certificate checker, which shows the expiry date and the days left. On the command line, openssl prints it as the notAfter date, as shown in Method 3.

How often should I check my SSL certificate?

Check it after every renewal and well before the expiry date. With automatic renewal, a monthly check confirms that renewal still works. Our SSL checker marks a certificate as expiring when 30 days or fewer are left.

Can an SSL certificate expire without warning?

Yes, when automatic renewal fails quietly. Common causes are DNS changes that break domain validation, a firewall that blocks the CA's validation request, or a renewal job that stopped running.

Does a padlock mean a website is safe?

No. The padlock means the connection is encrypted and the certificate matches the domain. Phishing sites can get DV certificates too, so check the domain name itself before you enter a password.

Is a free SSL certificate as secure as a paid one?

Yes, for encryption. A free DV certificate from Let's Encrypt uses the same TLS protocol and ciphers as a paid one. Paid OV and EV certificates add a check of the organization behind the domain, not stronger encryption.

Wrapping up

You can check an SSL certificate with an SSL checker, in the browser, with openssl or curl, or in Certificate Transparency logs. The first three show the certificate the server uses now, and CT logs show every certificate issued for the domain. To check a site, enter its domain into our SSL checker, or run a hosting check to see the certificate next to the DNS records and the hosting provider.

Piotr Kulpinski

Written by

Founder of HostingChecker.online and a web developer with over a decade of experience in DNS, hosting infrastructure, and domain management. Piotr builds tools that help developers and site owners understand their web stack. Other products: Highseat, OpenAlternative, EuroAlternative, Revinel and Dirstarter.

Free lookup tool

Check any website's hosting

Enter a domain or IP to uncover hosting details, DNS records, and server location.