ssl
Use Case Summary:
Environment Certificate Best Tool(s)
Needs
Web servers Public, trusted Certbot
HTTPS (Lets Encrypt)
Internal servers Private TLS/mTLS, Step CA, CFSSL
internal PKI
Cloud servers (VMs, Automated Step CA, OpenSSL
containers ) issuance, mTLS,
ACME, short lived
certs
1. Web Servers (Public HTTPS)
Tool: Certbot (Lets encrypt client)
Use case:
Secure public sites (web apps, dashboards, APIs) with trusted, free TLS certificates.
Features:
• Auto validates domain via HTTP-01 or DNS-01
• Issues 90 day certs with auto renewal
• Supports Apache, NGINX, and standalone web servers
Cybersecurity benefits:
• Publicly trusted CA (Lets Encrypt)
• Secure ACME protocol
• Auto renews reduces human error
Example command:
# For NGINX
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
Renewal:
sudo certbot renew --dry-run
2. Internal Servers (DBs, admin panels, APIs, etc.)
3.
Tool: Step CA , CFSSL
Use case:
Issue internal, private TLS/mTLS certificates for
• Admin panels
• Internal dashboards / servers
• Internal APIs / microservices
1/3
• Secure cloud workloads
Cybersecurity benefits:
• Zero trust ready identity aware issuance
• Short lived certs (default: 24h secure by design)
• Supports ACME, mTLS, OIDC
• Easy to rotate certs without manual revocation
Quick setup:
# Install and initialize CA
curl -fsSL https://github.com/smallstep/cli/releases/latest/download/step-linux-amd64.tar.gz
| tar xz
sudo mv step /usr/local/bin
# Initialize CA
step ca init
Then run
# Issue a TLS cert
step ca certificate internal.myapi.local internal.crt internal.key
Use ACME clients to auto issue/renew certs works like let's encrypt but private
3. Cloud Servers / Containers / VMs
Best Tools: Step CA , CFSSL ,OpenSSL
Use case: Secure communications between cloud workloads (e.g NGINX backend API, service mesh, gRPC).
Cybersecurity considerations:
• Automate short lived certs in CI/CD
• Integrate ACME clients or cert manager (Kubernetes) with Step CA
• Enforce TLS for internal APIs (not just edge)
Key Security Practices (All Servers)
Practice Recommendation
Strong key sizes Use 2048-bit RSA
minimum or better
(4096/ECDSA)
Short lived Prefer < 90-day
certificates certs with
automation (Step
CA)
ACME automation Use Certbot (public)
or Step CA (private)
Protect CA keys Use TPM/HSM if
possible for CA key
storage
Audit logs Log certificate
issuance and
revocation
2/3
Practice Recommendation
Secure renewal Use systemd/cron,
processes monitor expiration
dates
mTLS for internal Enforce in service
communication mesh / cloud API
traffic
Tool Purpose Link
Certbot Public HTTPS certs https://
from Lets Encrypt certbot.eff.org
Step CA Modern internal CA https://
for mTLS, ACME smallstep.com/
docs/step-ca
CFSSL Private CA https://github.com/
(Cloudflare) cloudflare/cfssl
OpenSSL Traditional CLI tool https://
for certs/keys www.openssl.org
cert-manager Kubernetes ACME https://cert-
automation manager.io/docs/
mkcert Localhost dev https://github.com/
certificates FiloSottile/mkcert
3/3