Skip to main content

Project Logo

The Lupaxa SRE Toolbox
Part of The Lupaxa Project


lupaxa-ssl-expiry

Check TLS certificate expiration dates on port 443.

Features

  • Query one or more hostnames and print one table
  • Read hosts from a file, or from stdin with --file -
  • Report the issuer, the expiration date, and the number of days remaining
  • Keep every host in the table, including invalid hosts and connection failures
  • Keep connection errors separate from expiry
  • Exit 1 when a certificate expires within --warn-days
  • Sort the table by host, issuer, date, or days, ascending or descending
  • Use the lookup library API
  • Depend on cryptography and prettytable at runtime

Installation

From PyPI

pip install lupaxa-ssl-expiry

From source (development mode)

pip install -e ".[dev]"

Requires Python 3.13+.

Library quick start

from lupaxa.ssl_expiry import lookup

result = lookup("example.com", timeout=10.0)
print(result.host, result.status, result.issuer, result.days_remaining)

CLI quick start

ssl-expiry --help
ssl-expiry example.com example.org
ssl-expiry --file hosts.txt --warn-days 14 --timeout 5

You can also run the CLI as a module:

python -m lupaxa.ssl_expiry --help
python -m lupaxa.ssl_expiry --version

Options

  • HOST: one or more hostnames
  • --file, -f: text file of hostnames, one per line; - reads stdin
  • --timeout, -t: TCP connect and TLS handshake timeout in seconds; default 10
  • --warn-days, -w: exit 1 when a certificate expires within this many days; default 30
  • --sort, -s: sort by host, issuer, date, or days
  • --order: ascending or descending (default ascending); requires --sort
  • --version: print the package version

Documentation

Online documentation:

Documentation

Source repository:

GitHub

Serve docs locally

From a clone of the repository:

make mkdocs-serve

Then open the local URL printed by MkDocs in your browser.

Development

Clone the repository and install with Make:

make init                # first-time makefile-skills checkout
make python-install-dev  # editable install with [dev]
make python-check        # lint, type-check, and test
The Lupaxa Project Footer

Release files for lupaxa-ssl-expiry 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lupaxa-ssl-expiry 0.1.0
File Size Uploaded
lupaxa_ssl_expiry-0.1.0.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lupaxa-ssl-expiry 0.1.0
File Interpreter ABI Platform
lupaxa_ssl_expiry-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.5 kB

Release files / lupaxa_ssl_expiry-0.1.0.tar.gz

Download URL lupaxa_ssl_expiry-0.1.0.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0cb784ac6f50471ead0fdd7e0575f2232340a92a1481e0058231324ce29cf5bb
BLAKE2b-256 checksum
How to use checksums
488c60c1e8ce2c321b8c6e91fb7717220168d6cb43b66dffa158c647a70f3ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / lupaxa_ssl_expiry-0.1.0-py3-none-any.whl

Download URL lupaxa_ssl_expiry-0.1.0-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
938bd97e3f018d7ff3c0ff8f709949a79b7bf9ba80e43ee22eebbeaab0cd4e7f
BLAKE2b-256 checksum
How to use checksums
445ea6191ed6d603fb9fd76bd315f34eeb3fc6755b0b7b987deecc0967d10c5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page