轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
step-ca

smallstep/step-ca

smallstep

🛡️ 一个在线证书颁发机构(CA)和ACME服务器,用于安全自动化的X.509和SSH证书管理。

89 次收藏下载次数: 0状态:社区镜像维护者:smallstep仓库类型:镜像最近更新:6 个月前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这段话即可:

请先阅读并遵守:https://xuanyuan.cloud/agents.md

未读文档前不要生成 pull 命令或排错方案。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

DockerHub 官方简介
轩辕镜像中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,让镜像更快,让人生更轻。
点击查看

step-ca

step-ca is a private online certificate authority (CA) for secure, automated X.509 and SSH certificate management.

  • Issue TLS and HTTPS certificates for all your workloads: VMs, containers, APIs, mobile clients, database connections, printers, humans, wifi networks, toaster ovens, and more.
  • Use it with https://smallstep.com/docs/tutorials/acme-protocol-acme-clients—certbot, acme.sh, Traefik, Caddy, Kubernetes cert-manager, etc.
  • Issue SSH certificates for people (in exchange for single sign-on OIDC ID tokens) or hosts (in exchange for cloud instance identity documents or single-use tokens).
  • Supports hardware-bound private keys in PKCS#11 HSMs and Yubikey PIV slots. (You must use the hsm-tagged image to enable hardware support.)

Important links:

  • https://smallstep.com/docs/step-ca.
  • https://github.com/smallstep/certificates and https://github.com/smallstep/certificates/tree/master/docker for this package.
  • Questions? Ask us on https://github.com/smallstep/certificates/discussions or ***.

Tags

The default image is suitable for most users.
It is tagged latest and tagged with the version number, eg. 0.23.0.
This is an Alpine-based image.

The HSM image is for use with keys stored in a PKCS#11 Hardware Security Module (HSM) or in Yubikey PIV slots.
It is tagged hsm and hsm- versions eg. hsm-0.23.0, hsm-0.23.1, ...
The step-ca binary in this image is compiled with CGO enabled.
It's Bullseye-based, so you can integrate a glibc-compatible pkcs11 module from your favorite HSM vendor. The HSM image runs pcscd (the PC Card Daemon) to access your HSM hardware. If you prefer to run pcscd on your host instead of inside the container, bind-mount the pcscd socket directory (-v /var/run/pcscd:/var/run/pcscd) and the entrypoint will automatically use the host's pcscd.


Don't want to run your own CA? To get up and running quickly, or as an alternative to running your own step-ca server, *** creating a https://info.smallstep.com/certificate-manager-early-access-mvp/.


Getting Started

Requirements

  • To interact with step-ca, you'll want to install the step client in your host environment. See our https://smallstep.com/docs/step-cli/installation.

Quickstart

Initialize your PKI

To initialize your PKI, on your Docker host, run:

docker run -it -v step:/home/step \
    -p 9000:9000 \
    -e "DOCKER_STEPCA_INIT_NAME=Smallstep" \
    -e "DOCKER_STEPCA_INIT_DNS_NAMES=localhost,$(hostname -f)" \
    -e "DOCKER_STEPCA_INIT_REMOTE_MANAGEMENT=true" \
    smallstep/step-ca

👉 Note the CA fingerprint (SHA256), the remote management super admin username, and the remote management password in the output.

The following environment variables are available for initializing the CA configuration:

  • (required) DOCKER_STEPCA_INIT_NAME the name of your CA—this will be the issuer of your CA certificates
  • (required)DOCKER_STEPCA_INIT_DNS_NAMES the hostname(s) or IPs that the CA will accept requests on
  • (recommended) DOCKER_STEPCA_INIT_REMOTE_MANAGEMENT enable https://smallstep.com/docs/step-ca/provisioners#remote-provisioner-management
  • DOCKER_STEPCA_INIT_PROVISIONER_NAME a label for the initial admin (JWK) provisioner. Default: admin
  • DOCKER_STEPCA_INIT_SSH set this to true to enable SSH certificate support
  • DOCKER_STEPCA_INIT_ACME also create an initial ACME provisioner for the CA
  • DOCKER_STEPCA_INIT_PASSWORD_FILE the location of a password file to be used for both private keys and the default CA provisioner. Useful for pointing to a Docker secret located in /run/secrets in the container. If both DOCKER_STEPCA_INIT_PASSWORD and DOCKER_STEPCA_INIT_PASSWORD_FILE are set, only DOCKER_STEPCA_INIT_PASSWORD_FILE will be used.
  • (not recommended) DOCKER_STEPCA_INIT_PASSWORD Normally, CA passwords will be generated for you. With this option, you can specify a password for the encrypted CA keys and the default CA provisioner. Note: Passwords stored in environment variables https://smallstep.com/blog/command-line-secrets/#environment-variables. In a production environment, a more secure option for specifying a password is to use the manual installation process, below.

These variables are only evaluated once, to configure step-ca before its first run.

Importing an existing PKI

The init script will always look for /run/secrets/root_ca.crt, /run/secrets/root_ca_key, and /run/secrets/root_ca_key_password, and if these files exist they will be used to import an existing PKI.

DOCKER_STEPCA_INIT_ROOT_FILE. DOCKER_STEPCA_INIT_KEY_FILE, and DOCKER_STEPCA_INIT_KEY_PASSWORD_FILE can be supplied if you need to use different filenames for this.

These files are only used once, to configure step-ca before its first run.

Bootstrap step clients

Once your CA is initialized, it will start running and you can connect to it. To connect, clients need to know the CA's URL and SHA256 fingerprint.

Let's bootstrap a step client in the host environment and install the root CA certificate into the host's trust store. In Bash, run:

{
  CA_FINGERPRINT=$(docker run -v step:/home/step smallstep/step-ca step certificate fingerprint certs/root_ca.crt)
  step ca bootstrap --ca-url https://localhost:9000 --fingerprint $CA_FINGERPRINT --install
}

Output:

The root certificate has been saved in /Users/alice/.step/certs/root_ca.crt.
Your configuration has been saved in /Users/alice/.step/config/defaults.json.
Installing the root certificate in the system truststore...
[sudo] password for alice: ....
done.

Your local step CLI is now configured to use the container instance of step-ca, and your root certificate is trusted by our host environment.

Run a health check:

curl https://localhost:9000/health

Output:

{"status":"ok"}

Your CA is ready for use.

Manual installation

This has been tested in Bash on Linux.

1. Pull down the Docker image

Get the latest version of step-ca

docker pull smallstep/step-ca

2. Bring up PKI bootstrapping container

The Docker volume step will hold your CA configuration, keys, and database.

docker run -it -v step:/home/step smallstep/step-ca step ca init --remote-management

The init command will step you through the bootstrapping process. Example output:

✔ What would you like to name your new PKI? (e.g. Smallstep): Smallstep
✔ What DNS names or IP addresses would you like to add to your new CA? (e.g. ca.smallstep.com[,1.1.1.1,etc.]): localhost
✔ What address will your new CA listen at? (e.g. :443): :9000
✔ What would you like to name the first provisioner for your new CA? (e.g. you@smallstep.com): admin@smallstep.com
✔ What do you want your password to be? [leave empty and we'll generate one]:

Generating root certificate... done!
Generating intermediate certificate... done!

✔ Root certificate: /home/step/certs/root_ca.crt
✔ Root private key: /home/step/secrets/root_ca_key
✔ Root fingerprint: fa08cceda8501b1d93d275cfc614a5af2a37c6c72e674192b4598808c5bae91e
✔ Intermediate certificate: /home/step/certs/intermediate_ca.crt
✔ Intermediate private key: /home/step/secrets/intermediate_ca_key
✔ Database folder: /home/step/db
✔ Default configuration: /home/step/config/defaults.json
✔ Certificate Authority configuration: /home/step/config/ca.json
✔ Admin provisioner: admin@smallstep.com (JWK)
✔ Super admin subject: step

Your PKI is ready to go. To generate certificates for individual services see 'step help ca'.

Save the root fingerprint value! You'll need it for client bootstrapping.

3. Place the PKI password in a known safe location.

The image is expecting the intermediate CA private key password to be placed in /home/step/secrets/password. Bring up the shell prompt in the container again and write that file:

docker run -it -v step:/home/step smallstep/step-ca sh

Inside your container, write the password file into the expected location:

 echo -n "<your password here>" > /home/step/secrets/password

Your CA is configured and ready to run.

4. Start step-ca

The CA runs an HTTPS API on port 9000 inside the container. Expose the server address locally and run the step-ca with:

docker run -d -p 9000:9000 -v step:/home/step smallstep/step-ca

Now, in the host environment, bootstrap your step client configuration:

{
CA_FINGERPRINT=$(docker run  -v step:/home/step smallstep/step-ca step certificate fingerprint /home/step/certs/root_ca.crt)
step ca bootstrap --ca-url https://localhost:9000 --fingerprint $CA_FINGERPRINT --install
}

Output:

The root certificate has been saved in /Users/alice/.step/certs/root_ca.crt.
Your configuration has been saved in /Users/alice/.step/config/defaults.json.
Installing the root certificate in the system truststore...
[sudo] password for alice: ...
done.

Your local step CLI is now configured to use the container instance of step-ca and our new root certificate is trusted by the host environment.

Run a health check:

curl https://localhost:9000/health

Output:

{"status":"ok"}

Next steps:

  • See https://smallstep.com/docs/step-ca/basic-certificate-authority-operations guide.
  • See https://smallstep.com/docs/step-ca/configuration to learn more about tailoring step-ca to your infrastructure.
  • Trying to get certificates to other containers? Read our post https://smallstep.com/blog/automate-docker-ssl-tls-certificates/.
  • Or, set up a development environment in the next section.

Code Signing

step-ca uses https://github.com/sigstore/cosign for signing and verifying containers. Here is an example of how to use cosign to verify a container:

cosign verify smallstep/step-ca:0.23.1 \
--certificate-identity-regexp "https://github\.com/smallstep/workflows/.*" \
--certificate-oidc-issuer https://token.actions.githubusercontent.com

Setting Up a Development Environment

You will need:

  • A Python 2.7.x interpreter to bring up a standalone webserver (optional)

Run this section on your host machine where Docker is installed.

Once you've bootstrapped your local environment, you can now run web services configured with TLS and mTLS. First, get a certificate for localhost:

step ca certificate localhost localhost.crt localhost.key

Output:

✔ Key ID: aTPGWP0qbuQdflR5VxtNouDIOXyNMH1H9KAZKP-UcHo (admin)
✔ Please enter the password to decrypt the provisioner key:
✔ CA: <https://localhost:9000/1.0/sign>
✔ Certificate: localhost.crt
✔ Private Key: localhost.key

Now save a copy of your root CA certificate:

step ca root root_ca.crt

Output:

The root certificate has been saved in root_ca.crt.

Next, let's launch a web server secured by HTTPS:

{
cat <<EOF > server.py
import BaseHTTPServer, ssl

class HelloHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200);
        self.send_header('content-type', 'text/html; charset=utf-8');
        self.end_headers()
        self.wfile.write(b'\\n\\xf0\\x9f\\x91\\x8b Hello! Welcome to TLS \\xf0\\x9f\\x94\\x92\\xe2\\x9c\\x85\\n\\n')

httpd = BaseHTTPServer.HTTPServer(('', 8443), HelloHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,
                   server_side=True,
                   keyfile="localhost.key",
                   certfile="localhost.crt",
                   ca_certs="root_ca.crt")
httpd.serve_forever()
EOF

python server.py
}

Open up another terminal to see your server running:

$ curl https://localhost:8443
👋 Hello! Welcome to TLS 🔒✅

Or visit https://localhost:8443/ from your browser.

Troubleshooting

Raspberry Pi Badger database errors

When you run step-ca on a Raspberry Pi, you might get the following error in your container logs:

step-ca  | badger 2021/05/08 20:13:12 INFO: All 0 tables opened in 0s
step-ca  | Error opening database of Type badger with source /home/step/db: error opening Badger database: Mmap value log file. Path=/home/step/db/000000.vlog. Error=cannot allocate memory

To fix it, edit the db configuration block in the file config/ca.json.

docker run -v step:/home/step -it smallstep/step-ca vi /home/step/config/ca.json

Change the value of badgerFileLoadingMode from "" to "FileIO".

You will end up with this:

    "db": {
          "type": "badger",
          "dataSource": "/home/step/db",
          "badgerFileLoadingMode": "FileIO"
    },

Save and restart the container.

**Questions? Ask us on https://github.com/smallstep/certificates/discussions or *.

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 step-ca 镜像标签

docker pull docker.xuanyuan.run/smallstep/step-ca:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull smallstep/step-ca:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
smallstep/step-ca
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
官方技术交流群:|问题咨询请:提交工单
服务号:轩辕镜像|公众号:源码跳动|小程序:轩辕镜像|官方技术交流群:|问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多相关 Docker 镜像与资源

以下是 smallstep/step-ca 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:

  • hashicorp/vault Docker 镜像说明(HashiCorp Vault,密钥管理和安全服务,适合企业级安全需求)
  • library/vault Docker 镜像说明(HashiCorp Vault 官方镜像,适合密钥管理与加密服务)
  • bitnamicharts/vault Docker 镜像说明(Bitnami HashiCorp Vault 图表栈,适合密钥管理 K8s 部署)
  • keycloak/keycloak Docker 镜像说明(Keycloak 身份与访问管理(IAM),适合 OIDC/SAML 单点登录与细粒度授权)
  • bitnami/keycloak Docker 镜像说明(Bitnami Keycloak 身份认证,适合 SSO、OIDC 与 OAuth2)

更多 step-ca 镜像推荐

smallstep/step-cli logo

smallstep/step-cli

smallstep
用于处理X509、OAuth、JWT、OATH OTP等的零信任瑞士军刀,是构建、操作和自动化公钥基础设施(PKI)系统与工作流的易用CLI工具。
9 次收藏100万+ 次下载
16 天前更新
smallstep/autocert-bootstrapper logo

smallstep/autocert-bootstrapper

smallstep
暂无描述
10万+ 次下载
6 个月前更新
smallstep/hello-mtls-server-go logo

smallstep/hello-mtls-server-go

smallstep
暂无描述
50万+ 次下载
7 年前更新
smallstep/step-issuer logo

smallstep/step-issuer

smallstep
暂无描述
10万+ 次下载
3 个月前更新
smallstep/autocert-renewer logo

smallstep/autocert-renewer

smallstep
暂无描述
10万+ 次下载
6 个月前更新
smallstep/autocert-controller logo

smallstep/autocert-controller

smallstep
暂无描述
10万+ 次下载
6 个月前更新

查看更多 step-ca 相关镜像