tlsanalyzer

tlsanalyzer is a small, dependency-free TLS inspection CLI inspired by sslscan.
It is built for environments where the scanner should be easy to carry, easy to audit and able to run without installing extra packages or fetching runtime dependencies.
What It Does
- Tests TLS protocol support from TLS 1.0 through TLS 1.3.
- Reports negotiated and supported cipher suites.
- Keeps TLS support separate from certificate validation status.
- Prints certificate summaries and optional PEM certificate chains.
- Exports human-readable Markdown reports.
- Emits JSON for scripts and automation.
- Evaluates simple TLS policy checks for CI workflows.
- Builds multi-platform release binaries with GitHub Actions.
Quick Start
Download a binary from the GitHub releases page, then run:
tlsanalyzer --host example.com
Common examples:
tlsanalyzer --host example.com --min-version 1.2
tlsanalyzer --host example.com --json
tlsanalyzer --host example.com --markdown example.com.md
tlsanalyzer --host example.com --policy modern
tlsanalyzer --host example.com --cert --output example.pem
Policy failures return exit code 3, which makes --policy modern useful in CI.
Documentation
Build From Source
Requirements:
CGO_ENABLED=0 go build -v -ldflags="-X 'github.com/olelbis/tlsanalyzer/build.Version=$(cat VERSION)' -X 'github.com/olelbis/tlsanalyzer/build.BuildUser=Team tlsanalyzer' -X 'github.com/olelbis/tlsanalyzer/build.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)'" -o tlsanalyzer .
Or use the build script:
./scripts/build.sh
./scripts/build.sh --all
Project Status
tlsanalyzer is experimental software. The core workflow is covered by unit tests, local TLS integration tests, CI and automated release builds, but scan accuracy and output semantics should still be validated before relying on it for compliance, audit or production security decisions.
Release Process
Releases are created by pushing a semantic version tag:
git tag -a vX.Y.Z -m "tlsanalyzer release vX.Y.Z"
git push origin vX.Y.Z
Release checklist:
- Update
VERSION, build/build.go and CHANGELOG.md.
- Run
go test ./..., go test -race ./... and go vet ./....
- Commit the release preparation changes.
- Create and push an annotated tag.
GitHub Actions builds Linux, macOS and Windows binaries for amd64 and arm64, then uses the matching CHANGELOG.md section as the GitHub release body.