step-ca is an online Certificate Authority (CA) for secure, automated X.509 and SSH certificate management.
It's the server counterpart to
It is secured with TLS,
and it offers several configurable certificate provisioners, flexible certificate templating, and pluggable database backends to suit a wide variety of contexts and workflows.
It employs sane default algorithms and attributes,
so you don't have to be a security engineer to use it securely.
- Generate TLS certificates for private infrastructure using the ACME protocol
- Automate TLS certificate renewal
- Add Automated Certificate Management Environment (ACME) support to a legacy subordinate CA
- Issue short-lived SSH certificates via OAuth OIDC single sign on
- Issue customized X.509 and SSH certificates
- and much more ...
X.509 Certificate Authority
step-ca issues X.509 certificates for use with TLS, mutual TLS (mTLS) authentication, document signing, and X.509 authentication more broadly.
step-ca, you can:
- Automate certificate issuance and renewal for clients and servers and Kubernetes workloads.
- Issue certificates to humans, eg. using Single Sign-on (OpenID Connect) for authentication.
- Choose key types (RSA, ECDSA, EdDSA) and lifetimes to suit your needs
- Operate a local Registration Authority (RA) on an internal network or inside a Kubernetes cluster, that authorizes certificate requests for an upstream
- Deploy a high availability (HA) Certificate Authority using root federation and/or multiple intermediaries
SSH Certificate Authority
step-ca can issue SSH certificates to users and hosts.
Delegate SSH authentication to
and set up a clear chain of trust for authorizing access.
Provisioners are methods of using the CA to get certificates for humans or machines.
They offer different modes of authorization for the CA.
For example, you can have your CA issue certificates in exchange for:
- Add custom Subject Alternative Names (SANs) or non-standard X.509 Object Identifiers (OIDs) to certificates
- Restrict certificates by domain name or key size
- Issue CA certificates with longer path lengths for multiple intermediaries
step-ca ships with several built-in templates for everyday operations,
and you can use Golang's
text/template syntax to create new templates.
For strong protection of your CA signing keys, we've built
step-ca integrations for PKCS #11 HSMs, Google Cloud KMS, AWS KMS, and Yubikey PIV, among others.
step-ca plays well with Kubernetes cert-manager and Envoy Secret Discovery Service. See Integrations to learn more.