step-ca — Private Certificate Authority for DevOps
step-ca is an open-source online Certificate Authority for secure automated certificate management. It provides ACME, SSH certificates, and mTLS for internal infrastructure — enabling TLS everywhere and SSO for SSH in your organization.
What it is
step-ca is a private online Certificate Authority created by Smallstep that brings the automation of the public web PKI to internal infrastructure. It issues X.509 certificates for TLS and SSH certificates for authentication, supporting the ACME protocol that powers Let's Encrypt. This means internal services can get certificates automatically using the same tools (certbot, ACME clients) used on the public internet.
step-ca targets DevOps engineers and platform teams who need encrypted internal traffic, mutual TLS between microservices, and SSH certificate-based authentication without exposing services to public certificate authorities.
How it saves time or tokens
step-ca automates certificate issuance and renewal that would otherwise require manual generation and distribution. The ACME protocol handles certificate lifecycle automatically, eliminating expired certificate incidents. SSH certificates replace SSH key management entirely -- no more distributing authorized_keys files across servers.
How to use
- Install the step CLI and step-ca:
brew install step step-ca. - Initialize a new CA:
step ca init --name 'My CA' --dns ca.example.com --address :443. - Start the CA server:
step-ca $(step path)/config/ca.json.
Example
# Initialize a new private CA
step ca init --name 'Internal CA' --dns ca.internal --address :8443
# Start the CA
step-ca $(step path)/config/ca.json
# Get a certificate for a service
step ca certificate myapp.internal myapp.crt myapp.key
# Renew automatically with a daemon
step ca renew --daemon myapp.crt myapp.key
# Issue an SSH certificate
step ssh certificate user@host ssh_key
Related on TokRepo
- AI Tools for Security -- explore security tools for certificate management and encryption
- AI Tools for DevOps -- discover DevOps automation for infrastructure security
Common pitfalls
- The root CA key must be kept secure; compromise of this key invalidates the entire certificate chain. Use hardware security modules (HSMs) in production.
- Clients need the CA root certificate installed in their trust store; without it, TLS connections to internal services will fail with certificate verification errors.
- ACME challenges for internal services require DNS or TLS-ALPN challenges, not HTTP-01, since internal services are not publicly accessible.
Frequently Asked Questions
Let's Encrypt is a public CA for internet-facing services. step-ca is a private CA for internal infrastructure. step-ca uses the same ACME protocol but issues certificates for internal domains that public CAs cannot validate.
Yes. step-ca issues SSH user and host certificates, replacing traditional SSH key management. SSH certificates expire automatically and can be tied to identity providers for single sign-on.
Yes. step-ca integrates with cert-manager for Kubernetes, automatically issuing and renewing TLS certificates for pods and ingress resources.
step-ca supports file-based key storage, Google Cloud KMS, AWS KMS, Azure Key Vault, YubiKey, and PKCS#11 hardware security modules.
The open-source step-ca is free under the Apache-2.0 license. Smallstep also offers a commercial product with additional features like a hosted CA and admin dashboard.
Citations (3)
- step-ca GitHub— step-ca is a private ACME Certificate Authority by Smallstep
- Smallstep Docs— step-ca documentation for certificate management
- IETF RFC 8555— ACME protocol specification (RFC 8555)
Related on TokRepo
Discussion
Related Assets
HumHub — Open-Source Enterprise Social Network
A flexible, open-source social networking platform built on Yii2 for creating private communities, intranets, and collaboration spaces within organizations.
Dolibarr — Open-Source ERP & CRM for Business Management
A modular open-source ERP and CRM application written in PHP for managing contacts, invoices, orders, inventory, accounting, and more from a single web interface.
PrestaShop — Open-Source PHP E-Commerce Platform
A widely adopted open-source e-commerce platform written in PHP with a rich module marketplace, multi-language support, and a strong European user base.