Internal certificate scanner

certavert-scan finds the TLS certificates on your own network and lists when they expire. It runs on your machine; nothing is sent to CertAvert.

  • Free
  • Open source (MIT)
  • Python 3.9+
  • macOS, Linux, Windows
$ pipx install certavert-scan
$ certavert-scan 192.168.1.0/24
Scanning 254 addresses, 2,286 endpoints…
  2286/2286 checked, 14 found
Found 14 endpoints, 11 certificates: 1 expired, 2 expiring, 11 ok
  certavert-scan-20261023-141502.html
  certavert-scan-20261023-141502.csv
  certavert-scan-20261023-141502.json

Install

macOS

pipx (recommended)

brew install pipx
pipx ensurepath
pipx install certavert-scan

pip

python3 -m venv ~/certavert-scan-venv
~/certavert-scan-venv/bin/pip install certavert-scan

Open a new terminal after pipx ensurepath.

Linux

pipx (recommended)

sudo apt install pipx
pipx ensurepath
pipx install certavert-scan

pip

python3 -m venv ~/certavert-scan-venv
~/certavert-scan-venv/bin/pip install certavert-scan

Fedora: sudo dnf install pipx. For pip on Debian and Ubuntu: sudo apt install python3-venv first.

Windows

pipx (recommended)

py -m pip install --user pipx
py -m pipx ensurepath
pipx install certavert-scan

pip

py -m pip install certavert-scan

In PowerShell or Command Prompt. Open a new window after ensurepath.

What it does

Runs on your machine
No account, no key, no upload. Nothing is sent anywhere.
Reads every certificate
Internal CAs, self-signed and expired certificates: the subject, names, issuer, dates, key, TLS version and cipher.
Three files per scan
An HTML page to read, a CSV for spreadsheets and a JSON file with everything.
Common TLS ports
443, 465, 636, 990, 993, 995, 5986, 8443 and 9443 by default; add your own.
Only a handshake
It connects, reads the certificate and closes. No request, no login, nothing changed.
Networks, addresses, names
Mix subnets, single addresses and host names, each with an optional port.
Only scan networks you own or are allowed to scan.
The settings file, every option, the JSON format and troubleshooting are in the instructions on GitHub.
Full instructions