s3heck is the next-generation CLI tool designed for the 2026 DevSecOps landscape. It transforms the complex, fragmented world of Public Key Infrastructure (PKI) and mTLS into a simple, unified workflow.
It replaces obscure openssl commands and manual Kubernetes log hunting with intelligent, actionable diagnostics.
- OpenSSL is hard: Remembering
openssl s_client -connect -servername ...flags is painful. - Diagnostics are manual: Checking expiration, chain completeness, and algorithm strength requires expert knowledge.
- K8s PKI is fragmented: Debugging
autocertorstep-issuerinvolves checking multiple Pods, Events, and Webhooks manually.
- One Command Diagnosis: Smartly analyze local certs, remote endpoints, and K8s clusters.
- Proactive Warnings: Warns about expiring certs, weak algorithms (SHA1/MD5), and untrusted chains.
- Production Scaffolding: Generates best-practice configurations for the Smallstep ecosystem.
- Smart Diagnostics (
check):- Remote: Auto-detects TLS version, SNI issues, chain validity (verified against system trust store), and expiration.
- Local: Validates PEM format, parses multiple certificates in a chain, and checks security standards.
- Kubernetes: Deep scans
autocertandstep-issuerstatus, parsing Pod logs, K8s Events (JSON), and Webhook configurations for common errors.
- Scaffolding (
scaffold):- Generate production-ready K8s manifests for
autocertandstep-issuer(prints to stdout for easy piping). - Create robust Go mTLS client/server examples with proper error handling and TLS 1.2+ defaults.
- Generate production-ready K8s manifests for
- Integrated Knowledge (
learn):- Access documentation for the entire ecosystem (
autocert,step-issuer,kms) offline via embedded files.
- Access documentation for the entire ecosystem (
- Versioning (
version):- Accurate build information including Git commit, tag, and build date.
go install github.com/kanywst/s3heck@latestCheck a remote endpoint:
# Detects SNI, TLS version, Trust issues, and Expiry
s3heck check --remote google.comDiagnose Kubernetes Cluster:
# Scans Autocert & Step-Issuer Pods, Events, and Webhooks for PKI errors
s3heck check --k8sInspect a local certificate chain:
s3heck check --file ./bundle.crtDeploy Autocert to K8s:
s3heck scaffold autocert > deployment.yaml
# or pipe directly
s3heck scaffold autocert | kubectl apply -f -Configure Step Issuer:
s3heck scaffold issuer > issuer.yamlGenerate Go mTLS Code:
s3heck scaffold mtls
# Creates mtls-server.go and mtls-client.go with setup instructionss3heck learn autocert
s3heck learn kmsThis tool unifies the best tools from Smallstep:
- Autocert: Automatic K8s certificate injection.
- Step Issuer: Cert-manager issuer for private CAs.
- Smallstep CLI: The swiss-army knife of crypto.
- Step KMS Plugin: Hardware key protection.
We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.
- Fork the repo
- Create a feature branch
- Commit your changes
- Submit a PR
