winget install --id=Smallstep.step -e
A Swiss army knife for working with X.509 certificates, JWTs, etc.
step
is an easy-to-use CLI tool for building, operating, and automating Public Key Infrastructure (PKI) systems and workflows.
It's the client counterpart to the step-ca
online Certificate Authority (CA).
You can use it for many common crypto and X.509 operations—either independently, or with an online CA.
Questions? Ask us on GitHub Discussions or Discord.
Website | Documentation | Installation | Basic Crypto Operations | Contributor's Guide
Step CLI's command groups illustrate its wide-ranging uses:
step certificate
: Work with X.509 (TLS/HTTPS) certificates.
step ca
: Administer and use a step-ca
server, or any ACMEv2 (RFC8555) compliant CA server. ACME is the protocol used by Let's Encrypt to automate the issuance of HTTPS certificates.
step-ca
step-ca
step-ca
step
supports the http-01
challenge typestep crypto
: A general-purpose crypto toolkit
scrypt
, bcrypt
, and argo2
step oauth
: Add an OAuth 2.0 single sign-on flow to any CLI application.
step crypto jwt verify
)step ssh
: Create and manage SSH certificates (requires an online or offline step-ca
instance)
See our installation docs here.
Here's a quick example, combining step oauth
and step crypto
to get and verify the signature of a Google OAuth OIDC token:
step
users on GitHub Discussions or Discordstep
step
and step-ca
in action on the Smallstep blog.