在做 HTTPS 接入时,很多开发者和运维都会遇到一个尴尬局面:
证书平台帮你一键生成了密钥对,用起来省事,但私钥在哪生成、算法是不是合规、能不能和我现有服务器/网关/K8s Secret 对齐,往往不受自己控制。
现在,AcmeSSL.cn(ACME SSL)已正式支持「手动添加 CSR 申请证书」。
你可以用自己服务器上生成的 CSR(证书签名请求)走完 Let's Encrypt / ZeroSSL / Google Public CA 等免费证书的签发流程,域名验证通过后直接拿回签发的证书文件,私钥始终留在你自己的机器上。
CSR(Certificate Signing Request,证书签名请求)里包含:
你要保护的域名 / SAN(Subject Alternative Names)
公钥
主体信息(CN、组织等,DV 证书实际以域名验证为准)
而与之配对的私钥(.key)只在你本地生成,不需要提交给 CA,也不需要提交给 AcmeSSL。
开启「手动添加 CSR」后,AcmeSSL 的角色变成:
你上传 CSR → 平台向 CA 发起订单 → 你完成 DNS/HTTP 验证 → CA 用 CSR 里的公钥签发证书 → 你下载证书链
适合这几类场景:
服务器、IoT 设备、反向代理、SAP / 老 Windows 服务强制要求用指定私钥
公司安全规范规定私钥不准离开内网
你想统一用 ECDSA P-384 / RSA 3072 / 4096 而不是平台默认 RSA 2048
已经有一套 OpenSSL / cfssl / KMS 出产的密钥体系,不想再换钥匙
多节点部署希望证书和既有私钥直接配对,避免重导
以 acmessl.cn 单域名 / 通配符 / 多域名 DV 证书为例。
bashbash# RSA 3072 示例openssl req -new -newkey rsa:3072 -nodes -keyout acmessl.key -out acmessl.csr -subj "/CN=acmessl.cn"
通配符就把 CN 写成 *.acmessl.cn,多域名建议在生成时把 SAN 带进去,或在平台域名框里按原流程补 SAN。
⚠️ 私钥
acmessl.key只留本地,别贴到浏览器表单里。
入口和原来一样:首页「创建证书」或「免费证书 / 证书列表」。
选择 CA(Let's Encrypt / ZeroSSL / Google Public CA 等)、证书类型(单域名 / 通配符 / 多域名)。

在申请页的密钥方式中,切到 手动添加 CSR / 上传 CSR:
粘贴 acmessl.csr 全文(含 -----BEGIN CERTIFICATE REQUEST----- 头尾)
或上传 .csr 文件
域名必须与 CSR 里的 CN/SAN 一致,否则 ACME 订单会拒绝 finalize
DNS 验证(推荐通配符):去域名商加 _acme-challenge 的 TXT 记录
HTTP 文件验证:在站点 .well-known/acme-challenge/ 下放指定文件(80 端口可达)
AcmeSSL 原有验证逻辑不变,验证通过后会向 CA 提交你的 CSR 并 finalize 订单。
签发完成后下载:
域名证书(leaf)
中间证书链(CA 提供)
你自己本地的 acmessl.key
Nginx 例子:
nginxnginxssl_certificate /path/acmessl.fullchain.pem; ssl_certificate_key /path/acmessl.key;
Apache 同理用 SSLCertificateFile + SSLCertificateKeyFile。
维度 | 平台自动生成 | 手动 CSR |
|---|---|---|
私钥位置 | 平台侧临时托管 | 仅在你服务器 |
算法选择 | 跟随平台默认 | RSA 2048/3072/4096、ECDSA P-256/P-384 自选 |
合规审计 | 需信任平台 | 满足“私钥不出域”要求 |
老系统对接 | 可能要转格式 | CSR 本来就是老系统语言 |
上手成本 | 极低 | 多一步 OpenSSL,但一次配置长期复用 |
简单说:新手继续用一键申请,进阶用户用 CSR 模式拿回控制权。
CSR 域名和订单域名不一致 → ACME finalize 直接报错,订单变 invalid。
把私钥也贴进 CSR 输入框 → 没必要且增加泄露风险,CSR 只含公钥。
RSA 2048 仍能用但别新项目强推 → 新环境建议 ECDSA P-384 或 RSA 3072+。
通配符必须用 DNS-01 验证,HTTP 文件验证不支持 *.domain。
免费 DV 都是 90 天,CSR 模式不影响续期;续期时你可换新 CSR 也可沿用旧公钥(看各自运维规范)。
AcmeSSL.cn 之前已经把「可视化申请 + ACME 自动续期 + Let's Encrypt/ZeroSSL/SSL.com/Google CA 聚合」做得比较轻量了。
手动 CSR 的加入,等于把最后一环——密钥主权——也交还给用户。
对个人站长:多一种更安全的玩法。
对企业运维:能进 CI/CD、能过等保/内审、能和现有 KMS、API 网关、Ingress 体系打通。
对开发者:REST API + 自管 CSR,脚本化批量签发免费证书终于闭环。
免费证书的本质是“域名验证 + 公钥绑定”,谁握私钥谁握 HTTPS 的真相。现在 AcmeSSL.cn 上,这个真相可以完全在你这边。
前往体验:https://acmessl.cn
上一篇:ACMESSL 单域名 SSL 证书申请与部署完整教程(Nginx / Apache)
下一篇:没有了!
