生成
CSR 在线生成器
用 RSA 或 ECDSA 生成证书签名请求(CSR)和私钥。私钥在你的浏览器里生成,不会上传。
浏览器本地运行 私钥在你的浏览器里(WebCrypto)生成和处理,不会离开你的设备,也不会上传到 ssl.sh。
CSR 生成器用来创建证书签名请求和对应的私钥。把域名填进通用名称(CN),补充其他名字,选好密钥类型,点 生成 CSR 和私钥。把 CSR 提交给证书颁发机构(或在阿里云、腾讯云等平台申请证书时选择“自己上传 CSR”),私钥保存在你的服务器上。私钥在浏览器里生成,不会上传。
怎么用
- 通用名称:主域名,比如
example.com或*.example.com。 - 备用名称(SAN):证书还要覆盖的其他名字,一行一个,比如
www.example.com。可以填 IP;中文域名会自动转成 punycode。 - 密钥类型:一般网站选 ECDSA P-256,追求兼容性选 RSA 2048,有合规要求再选 RSA 3072/4096 或 P-384。
- 组织信息(可选):只有 OV/EV 证书需要。
- 点 生成 CSR 和私钥,把两个文件都下载下来,
.key文件务必保密。
页面上还会给出等价的 OpenSSL 命令,例如:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \
-keyout example.com.key -out example.com.csr \
-subj '/CN=example.com' -addext 'subjectAltName=DNS:example.com,DNS:www.example.com'
CSR 里有什么
CSR 包含主体名称、公钥,以及请求添加的扩展(这里是 SAN 列表),整体用私钥签名,CA 据此确认你持有私钥。RSA 用 SHA-256 签名,P-256 用 ECDSA SHA-256,P-384 用 ECDSA SHA-384。生成后可以用 CSR 解析工具检查。
注意事项
- 马上保存私钥。 它只存在于当前浏览器标签页,关掉就找不回来,证书签下来也用不了。
- 私钥是不加密的 PKCS #8(
-----BEGIN PRIVATE KEY-----),Nginx、Apache、宝塔“密钥(KEY)”框和各云控制台都能直接用。服务器上用chmod 600保护好文件。 - 2022 年 9 月起公开 CA 不再在证书里写 OU,除非自建 CA 需要,否则留空。
- 证书签发后,用私钥匹配工具确认它和私钥是一对,否则会出现 nginx key values mismatch 之类的错误。
常见问题
选 RSA 还是 ECDSA?
ECDSA P-256 密钥更小、握手更快,当前所有浏览器和服务器都支持。需要兼容很老的客户端、硬件设备,或者 CA、平台明确要求 RSA 时,选 RSA 2048。
在网页上生成私钥安全吗?
这里的私钥由你浏览器自带的 WebCrypto 生成,只存在于当前页面,不会发给 ssl.sh。如果公司规定私钥必须在服务器上生成,就用结果旁边给出的 OpenSSL 命令在服务器上执行。
组织、城市、国家这些要填吗?
DV 证书不用填,CA 只验证域名,会忽略这些字段。OV、EV 证书要按 CA 的要求填写真实的单位信息,CA 核实后才会写进证书。
怎么申请通配符证书?
CN 或 SAN 填 *.example.com。通配符只覆盖一级子域名,如果还需要裸域名 example.com,要单独加一个 SAN。