tlsanalyzer

command module
v0.8.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: MIT Imports: 15 Imported by: 0

README

tlsanalyzer

CI Release Release Alignment Latest Release Go Version Dependencies OS - Linux OS - macOS OS - Windows

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.
  • Supports explicit SNI/certificate name overrides for IP and load balancer scans.
  • 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.
  • Prints a concise summary for supported TLS versions, certificate validation and cipher findings.
  • 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
tlsanalyzer --host 203.0.113.10 --sni example.com

Policy failures return exit code 3, which makes --policy modern useful in CI. Certificate policy checks fail when validation is invalid, skipped or unavailable.

Documentation

Build From Source

Requirements:

  • Go 1.26.3 or newer
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:

  1. Update VERSION, build/build.go and CHANGELOG.md.
  2. Run go test ./..., go test -race ./... and go vet ./....
  3. Commit the release preparation changes.
  4. Create and push an annotated tag.
  5. Run scripts/check-release-alignment.sh to confirm main points at the latest release 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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
File: certs/certs.go
File: certs/certs.go
File: output/output.go
File: output/output.go
File: scan/scan.go
File: scan/scan.go
File: utils/cipher.go
File: utils/cipher.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL