🛡️ A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.
See the codestep-ca is an online certificate authority for secure, automated certificate management for DevOps.
It's the server counterpart to the step CLI tool for working with certificates and keys.
Both projects are maintained by Smallstep Labs.
You can use step-ca to:
step-ca is optimized for a two-tier PKI serving common DevOps use cases.
As you design your PKI, if you need any of the following, consider our commercial CA:
See our full feature comparison for more.
You can start a free trial or set up a call with us to learn more.
Questions? Find us in Discussions or Join our Discord.
Website | Documentation | Installation | Contributor's Guide
Setting up a public key infrastructure (PKI) is out of reach for many small teams. step-ca makes it easier.
There are several ways to authorize a request with the CA and establish a chain of trust that suits your flow.
You can issue certificates in exchange for:
ACME is the protocol used by Let's Encrypt to automate the issuance of HTTPS certificates. It's super easy to issue certificates to any ACMEv2 (RFC8555) client.
Supports the most popular ACME challenge types:
http-01, place a token at a well-known URL to prove that you control the web serverdns-01, add a TXT record to prove that you control the DNS record settls-alpn-01, respond to the challenge at the TLS layer (as Caddy does) to prove that you control the web serverWorks with any ACME client. We've written examples for:
Get certificates programmatically using ACME, using these libraries:
lego for Golang (example usage)acme module for Python (example usage)acme-client for Node.js (example usage)Our own step CLI tool is also an ACME client!
See our ACME tutorial for more
step-ca by using SSH certificates instead of public keys and authorized_keys filesstep CLI integrationstep-castep-caSee our installation docs here.
step command reference is available via step help,
on smallstep.com,
or by running step help --http=:8080 from the command line
and visiting http://localhost:8080.Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 125)
4,705 followers · starred Feb 2020
729 followers · starred Aug 2019
270 followers · starred Nov 2024
197 followers · starred Jul 2025
🛡️ A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.
See the codestep-ca is an online certificate authority for secure, automated certificate management for DevOps.
It's the server counterpart to the step CLI tool for working with certificates and keys.
Both projects are maintained by Smallstep Labs.
You can use step-ca to:
step-ca is optimized for a two-tier PKI serving common DevOps use cases.
As you design your PKI, if you need any of the following, consider our commercial CA:
See our full feature comparison for more.
You can start a free trial or set up a call with us to learn more.
Questions? Find us in Discussions or Join our Discord.
Website | Documentation | Installation | Contributor's Guide
Setting up a public key infrastructure (PKI) is out of reach for many small teams. step-ca makes it easier.
There are several ways to authorize a request with the CA and establish a chain of trust that suits your flow.
You can issue certificates in exchange for:
ACME is the protocol used by Let's Encrypt to automate the issuance of HTTPS certificates. It's super easy to issue certificates to any ACMEv2 (RFC8555) client.
Supports the most popular ACME challenge types:
http-01, place a token at a well-known URL to prove that you control the web serverdns-01, add a TXT record to prove that you control the DNS record settls-alpn-01, respond to the challenge at the TLS layer (as Caddy does) to prove that you control the web serverWorks with any ACME client. We've written examples for:
Get certificates programmatically using ACME, using these libraries:
lego for Golang (example usage)acme module for Python (example usage)acme-client for Node.js (example usage)Our own step CLI tool is also an ACME client!
See our ACME tutorial for more
step-ca by using SSH certificates instead of public keys and authorized_keys filesstep CLI integrationstep-castep-caSee our installation docs here.
step command reference is available via step help,
on smallstep.com,
or by running step help --http=:8080 from the command line
and visiting http://localhost:8080.Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 125)
4,705 followers · starred Feb 2020
729 followers · starred Aug 2019
270 followers · starred Nov 2024
197 followers · starred Jul 2025