Free tool
Bulk SSL checker
Check the certificates and registrations of up to 10 domains at once, in one table you can sort. Free, no account.
Results
Opens Expiry Watch with this list filled in, free for up to 10 domains. Nothing is watched until you confirm it from one email.
What the table shows
- Certificate expires
- When the domain’s TLS certificate stops being valid, and how many days are left, counted in calendar days in UTC. Where a domain’s addresses serve different certificates, this is the valid one that expires soonest, since some visitors get it; a certificate that isn’t valid, on any address, shows under Problems. If none is valid, this is the one that expires soonest.
- Issuer
- The certificate authority that signed it, and the intermediate it used, such as Let’s Encrypt R11.
- Problems
- What needs a look, the most serious first: an expired, untrusted or wrong-name certificate, a problem on some of the domain’s addresses, a registration that has expired, a certificate that expires within 14 days or a registration within 30, or a check that couldn’t finish and why. “None found” means a valid certificate with more than 14 days left, and no registration we could read expiring within 30.
- Addresses
- How many of the domain’s server addresses we checked, out of how many its DNS gives. Open the domain for what each one served.
- Registration expires
- When the domain registration itself runs out, from its registry over RDAP. Subdomains are looked up as the domain they belong to. Where we can’t get a date from the registry, the column says so; check the renewal date with your registrar.
Press a column heading to sort by it, soonest or most serious first; press it again to reverse. Each domain links to its full report on the SSL certificate checker.
Check a list from the command line
With OpenSSL, this prints each domain’s certificate expiry (notAfter), one domain per line of domains.txt:
while read -r d; do
printf "%s " "$d"
openssl s_client -connect "$d:443" -servername "$d" </dev/null 2>/dev/null | openssl x509 -noout -enddate
done < domains.txt example.com notAfter=Dec 25 22:56:35 2026 GMT
wikipedia.org notAfter=Jan 2 18:34:50 2027 GMT Run on October 24, 2026 with OpenSSL 3.6.4. Each line comes from the one address OpenSSL happened to connect to, and says nothing about the chain, the name or the registration; the table above checks all of those, on each address it checks.
Watch the list, not just check it
A check tells you about today. Once the run is done, Watch these domains opens Expiry Watch with the list filled in: add your email, review the list, and confirm it from one email. From then on we check every domain daily and email you if a certificate’s renewal looks late, or before a certificate or registration expires. Nothing is watched until you confirm.
How the check works
Each domain is checked like a single one on the SSL certificate checker, three at a time: we resolve it, complete a TLS handshake on port 443 with each of its addresses, up to 4 IPv4 and 4 IPv6, read the certificates, and disconnect. We don’t load pages, send any data or follow redirects, and we never connect to private or reserved addresses. The registration date comes from the domain’s registry over RDAP.
Questions
Something else? Send us a note, right from the page.
Is the bulk SSL checker free?
Yes, with no account. Check up to 10 domains at a time, as often as you need. Watching them, with email alerts, is free for up to 10 domains.
Why 10 domains at a time?
Each domain gets the same check as the SSL certificate checker: its server addresses (up to 4 per IP version), the chain, and the registry. 10 at a time keeps that quick and leaves room under the limit of about 20 checks a minute per connection, so you can check a list, fix something and check it again.
It is also what Expiry Watch watches for free, so the whole list goes straight into one confirmation.
Does it check every server a domain has?
The addresses its DNS gives us, up to 4 IPv4 and 4 IPv6, the same ones each time. The table shows how many were checked out of how many there are; open a domain for what each address served. A load balancer behind one address answers with one of its servers, so a bad server behind it may not show on a given day.
What does “check failed” mean in a row?
We couldn’t complete a TLS connection to that domain: no DNS record, nothing on port 443, a firewall, or a server that doesn’t speak TLS. The row says which.
It is never counted as expired. If several rows say “didn’t finish”, they were waiting when the check limit was reached; check them again a minute later.
Do you keep the domains I check?
We don’t keep a history of your checks or tie them to you. Registry answers are reused for up to 12 hours so repeat lookups are quick, then deleted within a week, and like any web service our request logs are kept for a few days.
Watch them all with one email.
Expiry Watch checks up to 10 domains every day, free, and emails you if a certificate’s renewal looks late, or before a certificate or a registration runs out. One email confirms the whole list.