certificates
by smallstep
step-ca is a private certificate authority and ACME server enabling secure, automated issuance and management of X.509 and SSH certificates for DevOps environments.
🛡️ A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.
Primary Use Case
This tool is designed for DevOps teams and security engineers who need to automate the issuance and management of TLS and SSH certificates within private infrastructures. It facilitates secure communication by providing a private CA that supports HTTPS, SSH single sign-on, and ACME protocols, making it ideal for managing certificates across VMs, containers, APIs, and Kubernetes clusters.
- Issues HTTPS server and client certificates compliant with RFC5280 and CA/Browser Forum standards
- Supports issuance of TLS certificates for various DevOps resources like VMs, containers, APIs, and Kubernetes pods
- Issues SSH certificates for users via single sign-on tokens and for hosts using cloud instance identity documents
- Acts as an ACME server supporting all popular ACME challenge types for automated certificate management
- Provides a Go client wrapper and a CLI tool for scripting and automation
- Supports multiple key types including RSA, ECDSA, and EdDSA with configurable lifetimes
- Optimized for two-tier PKI setups suitable for common DevOps use cases
Installation
- Visit the official documentation at https://smallstep.com/docs/step-ca/installation for detailed installation steps
- Download and install the step CLI tool from https://github.com/smallstep/cli
- Set up step-ca server following the installation guide to initialize your private CA
- Configure step-ca according to your environment requirements (key types, lifetimes, ACME settings)
- Use the step CLI or Go wrapper to interact with the step-ca server for certificate issuance and management
Usage
>_ step-ca startStarts the step-ca server to begin issuing certificates
>_ step ca certificate <name> <cert-file> <key-file>Issues a new certificate for a given name and saves it to specified files
>_ step ssh certificate <user> <public-key-file> --principal <principal>Issues an SSH user certificate based on a public key and principal
>_ step ca renewRenews an existing certificate
>_ step ca revoke <certificate>Revokes a certificate issued by the CA
>_ step ca provisioner add <name>Adds a new provisioner for authentication and authorization
- Integrate step-ca with CI/CD pipelines to automate certificate issuance and rotation, reducing attack surface from expired or weak certificates.
- Leverage SSH certificate issuance with SSO tokens to centralize and strengthen access control, minimizing risks from stolen static SSH keys.
- Use step-ca's ACME server capabilities to automate TLS certificate lifecycle management across ephemeral infrastructure like containers and Kubernetes pods.
- Combine step-ca with monitoring tools to detect anomalous certificate issuance patterns as an early indicator of compromise.
- Employ step-ca in purple team exercises to simulate credential theft and test detection and response capabilities around certificate-based authentication.
Docs Take 2 Hours. AI Takes 10 Seconds.
Ask anything about certificates. Installation? Config? Troubleshooting? Get answers trained on real docs and GitHub issues—not generic ChatGPT fluff.
3 free chats per tool • Instant responses • No credit card
Related Tools

vaultwarden
dani-garcia/vaultwarden
Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
authelia
authelia/authelia
The Single Sign-On Multi-Factor portal for web apps, now OpenID Certified™
keepassxc
keepassxreboot/keepassxc
KeePassXC is a cross-platform community-driven port of the Windows application “KeePass Password Safe”.
infisical
Infisical/infisical
Infisical is the open-source platform for secrets, certificates, and privileged access management.
authentik
goauthentik/authentik
The authentication glue you need.
teleport
gravitational/teleport
The easiest, and most secure way to access and protect all of your infrastructure.
