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安装顺序
- 首先安装仅包含CA的配置文件。
- iOS将显示“未验证”,但请继续。
- 然后启用
内容来源: smallstep/certificates