iOS SCEP 注册失败: “无法创建证书签名请求”(小步 CA + NGINX)

作者: ismailunsall创建于 2025年9月19日更新于 2026年6月23日

系统的功能

  • 在Docker中运行step-ca,并将容器中的根/中间证书复制到out/目录中。
  • 边缘TLS:生成edge/tls.key(RSA‑2048)和一个CSR;使用step-ca(admin)签名,生成edge/tls.crt和edge/tls.fullchain.crt。
  • 创建/更新SCEP提供程序,包括:
  • 挑战(十六进制)
  • 限制:SCEPStandard、POSTPKIOperation、SHA‑256、续期
  • 最小RSA密钥大小为2048
  • 加密算法标识符 = 2
  • X.509模板:clientAuth、KeyUsage:sign+enc
  • 重启step-ca并验证其健康状况
  • 生成配置文件:
  • ca.mobileconfig(根+中间,以base64编码)
  • scep.mobileconfig(URL:https://<EDGE_HOST>:/scep/<SCEP_NAME>,RSA‑2048,使用=5,挑战)
  • 组合配置文件(CA+SCEP),通过PayloadCertificateAnchorUUID锚定到根/中间
  • 如果需要,发布一个短期“配置文件签名者”叶(24小时),使用step ca证书;使用signer.crt/key/chain通过OpenSSL SMIME/DER(nodetach)对所有.mobileconfig文件进行签名。
  • 启动nginx:从/profiles/中服务签名的配置文件;将/scep/请求代理到step-ca:8080。
  • 验证TLS链并打印就绪的URL。
  • 版本(来自compose):step-ca 0.28.4,nginx 1.27‑alpine(CLI日志中提到0.28.7)。

iOS安装顺序

  1. 首先安装仅包含CA的配置文件。
  • iOS将显示“未验证”,但请继续。
  • 然后启用

内容来源: smallstep/certificates