搬瓦工 VPS Step CA ACME 证书服务搭建教程

Step CA 是 Smallstep 开源的私有证书颁发机构(CA)服务器,内置 ACME 协议支持,可以为内部网络中的服务自动签发和续期 TLS 证书。它相当于一个自建的 Let's Encrypt,但面向内部基础设施。Step CA 特别适合需要为大量内部服务提供 TLS 加密但又不想使用公网 CA 的场景。本文将介绍如何在搬瓦工 VPS 上搭建 Step CA。

一、安装 Step CLI 和 Step CA

# 安装 step CLI
wget https://dl.smallstep.com/gh-release/cli/docs-cli-install/v0.27.2/step-cli_0.27.2_amd64.deb
dpkg -i step-cli_0.27.2_amd64.deb

# 安装 step-ca
wget https://dl.smallstep.com/gh-release/certificates/docs-ca-install/v0.27.2/step-ca_0.27.2_amd64.deb
dpkg -i step-ca_0.27.2_amd64.deb

# 验证安装
step version
step-ca version

二、初始化 CA

step ca init \
  --name "My Internal CA" \
  --dns ca.example.com \
  --dns 127.0.0.1 \
  --address :8443 \
  --provisioner admin \
  --deployment-type standalone

初始化过程会要求设置密码,并生成 CA 根证书和中间证书。配置文件默认保存在 ~/.step/ 目录。

三、启用 ACME 协议

# 添加 ACME 供应商
step ca provisioner add acme --type ACME

# 启动 CA 服务
step-ca $(step path)/config/ca.json

3.1 配置 systemd 服务

cat > /etc/systemd/system/step-ca.service <<'EOF'
[Unit]
Description=step-ca service
After=network-online.target
Wants=network-online.target

[Service]
User=step
Group=step
ExecStart=/usr/bin/step-ca /home/step/.step/config/ca.json --password-file /home/step/.step/secrets/password
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 创建专用用户
useradd --system --home /home/step --shell /bin/false step
cp -r ~/.step /home/step/.step
chown -R step:step /home/step

systemctl daemon-reload
systemctl enable step-ca
systemctl start step-ca

四、使用 ACME 客户端申请证书

4.1 使用 step CLI 申请

# 安装 CA 根证书到信任库
step certificate install $(step path)/certs/root_ca.crt

# 使用 ACME 协议申请证书
step ca certificate app.example.com app.crt app.key \
  --provisioner acme \
  --ca-url https://ca.example.com:8443

4.2 使用 Certbot 申请

# 配置 Certbot 使用私有 CA
REQUESTS_CA_BUNDLE=$(step path)/certs/root_ca.crt \
certbot certonly --standalone \
  --server https://ca.example.com:8443/acme/acme/directory \
  -d app.example.com \
  --agree-tos \
  --email admin@example.com

4.3 自动续期

# 使用 step 自动续期
step ca renew app.crt app.key --force

# 配置定时续期
cat > /opt/renew-cert.sh <<'EOF'
#!/bin/bash
step ca renew /etc/ssl/app.crt /etc/ssl/app.key --force
systemctl reload nginx
EOF

chmod +x /opt/renew-cert.sh
echo "0 2 */15 * * root /opt/renew-cert.sh" >> /etc/crontab

五、与 Traefik 集成

# Traefik 静态配置
# certificatesResolvers:
#   step-ca:
#     acme:
#       email: admin@example.com
#       storage: /etc/traefik/acme.json
#       caServer: https://ca.example.com:8443/acme/acme/directory
#       tlsChallenge: {}

六、证书管理

# 查看 CA 根证书信息
step certificate inspect $(step path)/certs/root_ca.crt

# 查看已签发的证书
step certificate inspect app.crt

# 吊销证书
step ca revoke --cert app.crt --key app.key

# 查看 CA 配置
cat $(step path)/config/ca.json

七、安全建议

  • 将 CA 私钥存放在安全位置,考虑使用 HashiCorp Vault 保管。
  • 设置合理的证书有效期,内部证书建议 30-90 天。
  • 通过防火墙限制 CA 服务的访问来源。
  • 定期备份 CA 配置和密钥。

总结

Step CA 是搭建私有 ACME 服务的最佳选择,让内部服务享受与 Let's Encrypt 同样的自动化证书管理体验。配合 OpenSSLCFSSL,可以满足各种证书管理需求。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。