Usage Examples

This page covers common use cases and command patterns for ssl-toolkit.

Interactive Mode

Launch ssl-toolkit without arguments for an interactive experience:

ssl-toolkit

Or specify a domain to get prompted for which checks to run:

ssl-toolkit -d example.com

The interactive menu includes options for:

  • DNS Resolution
  • TLS Connection analysis
  • Certificate Details
  • WHOIS Lookup
  • Security Grade
  • And more

Use arrow keys to navigate and Enter to select.

Domain Checks

Full Domain Analysis

Run all checks on a domain without prompts:

ssl-toolkit -d github.com --non-interactive

Quick Grade Only

Get just the security grade with minimal output:

ssl-toolkit -d example.com --quiet

Custom Port

Check a service running on a non-standard port:

ssl-toolkit -d example.com -p 8443

Override IP Address

Useful for testing a specific server or before DNS propagation:

ssl-toolkit -d example.com -i 192.168.1.100

Skip WHOIS Lookup

WHOIS lookups can be slow due to rate limiting. Skip them when not needed:

ssl-toolkit -d example.com --non-interactive --skip-whois

Verbose Output

Get detailed information about each check:

ssl-toolkit -d example.com --non-interactive --verbose

Certificate Operations

View Certificate Details

Inspect a local PEM certificate file:

ssl-toolkit cert info cert.pem

View multiple certificates at once:

ssl-toolkit cert info cert.pem intermediate.pem root.pem

Verify Certificate and Key Pair

Check that a certificate and private key match:

ssl-toolkit cert verify --cert cert.pem --key key.pem

Validate Certificate Chain

Verify a certificate chain is valid for a hostname:

ssl-toolkit cert verify --chain chain.pem --hostname example.com

Convert Certificate Formats

Convert PEM to DER:

ssl-toolkit cert convert cert.pem --to der -o cert.der

Convert PEM to PKCS#12 (PFX):

ssl-toolkit cert convert --to p12 --cert cert.pem --key key.pem

CI/CD Integration

JSON Output

Get structured JSON output for parsing in scripts:

ssl-toolkit -d example.com --non-interactive --json

Example JSON structure:

{
  "domain": "example.com",
  "grade": "A+",
  "score": 100,
  "certificate": {
    "subject": "CN=example.com",
    "issuer": "...",
    "valid_from": "2024-01-01T00:00:00Z",
    "valid_until": "2025-01-01T00:00:00Z"
  },
  "checks": [...]
}

HTML Reports

Generate a standalone HTML report:

ssl-toolkit -d example.com --non-interactive -o report.html

The report includes embedded styles and can be viewed in any browser.

Exit Codes in Scripts

Use exit codes to integrate with CI/CD pipelines:

ssl-toolkit -d example.com --quiet && echo "SSL OK" || echo "SSL FAIL"

Exit codes:

CodeMeaning
0Success — all checks passed
1Warning — certificate expiring soon or minor issues
2Failure — certificate expired, connection failed, or critical error

Timeout Configuration

Set a custom connection timeout (default is 10 seconds):

ssl-toolkit -d example.com --timeout 30

Advanced Usage

Custom Configuration File

Use a custom configuration file:

ssl-toolkit -d example.com --config /path/to/config.toml

Multiple Domain Checks

Check multiple domains in a script:

for domain in example.com github.com google.com; do
  echo "Checking $domain..."
  ssl-toolkit -d "$domain" --quiet
done

Certificate Expiry Monitoring

Create a simple monitoring script:

#!/bin/bash
DOMAINS="example.com github.com"

for domain in $DOMAINS; do
  result=$(ssl-toolkit -d "$domain" --quiet 2>&1)
  exit_code=$?
  
  if [ $exit_code -eq 0 ]; then
    echo "✓ $domain: $result"
  elif [ $exit_code -eq 1 ]; then
    echo "⚠ $domain: $result (warning)"
  else
    echo "✗ $domain: FAILED"
  fi
done