反馈

CSR制作

私钥在你的浏览器本地生成,不会上传。生成后请立即保存私钥并妥善保管 —— 私钥丢失则证书无法使用,私钥泄露则证书失去意义。本页仅供学习与测试,正式业务建议用 OpenSSL 在服务器上生成。

📖 工具说明

1. CSR 是什么

申请 SSL/TLS 证书时,你要先生成一对密钥(私钥留在自己服务器,公钥交出去),再把公钥连同域名、组织等信息打包成一个 CSR(Certificate Signing Request,证书签名请求),提交给证书颁发机构(CA)。CA 核验后用你 CSR 里的公钥和信息签发证书。

私钥必须自己保管,绝不能给别人,也不该经过任何网络。 本工具的密钥对和 CSR 全部在你的浏览器里生成(RSA 用 node-forge,ECDSA 用浏览器原生 Web Crypto,SM2 用 sm-crypto),不上传服务器,刷新即销毁 —— 请生成后立即下载私钥。正式生产环境仍建议直接用 OpenSSL 在目标服务器上生成。

2. 字段说明

字段 缩写 示例 说明
通用名 CN example.com 必填,要申请证书的确切域名;通配符证书填 *.example.com
主题备用名 SAN example.com, www.example.com 多域名证书填这里,逗号分隔;现代浏览器只认 SAN,不看 CN。留空则用 CN
组织 O Example Inc. OV/EV 证书需要,和营业执照英文名一致
部门 OU IT Dept 可选
国家 C CN ISO 3166 两位代码
省 / 城市 ST / L Zhejiang / Hangzhou OV/EV 证书需要
邮箱 E admin@example.com 可选,部分 CA 用于联系

DV(域名验证)证书通常只需要 CN 和 SAN;OV/EV 才需要完整的组织信息。

3. 使用步骤

  1. 填 CN(和 SAN),需要的话补 O/OU/C/ST/L/E。
  2. 选密钥算法:
    • RSA:推荐 2048,兼容性最好;4096 更强但握手稍慢、生成也慢。私钥为 PKCS#1(RSA PRIVATE KEY)。
    • ECDSA P-256 / P-384:密钥短、签名快,主流 CA 和浏览器都支持。私钥为 PKCS#8(PRIVATE KEY)。P-384 建议配 SHA-384。
    • SM2(国密):签名算法 SM2-with-SM3,用于国密 SSL 证书;私钥为 SEC1(EC PRIVATE KEY),同时显示 Hex 私钥 / 公钥。 再选签名摘要(默认 SHA-256;SM2 固定为 SM3)。
  3. 点「生成」,等几秒(RSA 4096 位可能十几秒,ECDSA / SM2 几乎瞬间)。
  4. 先下载 .key 私钥存到安全的地方,再复制 / 下载 .csr 提交给证书商。

4. 常见问题(FAQ)

Q:私钥真的没上传吗? A:没有。生成用的是浏览器里的 node-forge 库,页面也没有任何上传请求。你可以断网后再点生成验证。

Q:支持 ECC / 国密 SM2 吗? A:支持。密钥算法可选 RSA、ECDSA P-256、ECDSA P-384、SM2。前三种生成的 CSR 我们用 OpenSSL 校验过自签名(openssl req -verify)。

Q:SM2 的 CSR 用 OpenSSL 验证失败? A:SM2 签名里包含「用户标识 ID」。本工具默认用国标默认值 1234567812345678(GmSSL、Tongsuo、国内 CA 通用);而 OpenSSL 3.x 的 req 命令在没显式指定时使用空 ID,两边不一致就会报"self-signature does not match"。想用 OpenSSL 3 本地验证,就把页面里的「SM2 用户标识 ID」清空再生成;提交给国内 CA 则保持默认,并以 CA 的要求为准。

Q:CN 和 SAN 都要填域名,重复吗? A:建议 SAN 里包含 CN 那个域名。浏览器校验证书时只看 SAN 列表,CN 已是历史遗留字段。工具在 SAN 留空时会自动把 CN 放进 SAN。

Q:生成后能验证 CSR 内容对不对吗? A:本地执行 openssl req -in xxx.csr -noout -text -verify 最可靠,可看到主题、SAN、公钥算法和自签名校验结果;RSA 的 CSR 也可以用 CSR 检查 解析查看。

Q:4096 位生成很慢 / 卡住? A:纯 JS 生成大素数本身慢,4096 位十几秒属正常,期间页面会短暂无响应。日常用 2048 即可。


相关:CSR 检查 · 证书检查 · RSA 加解密 · JWT 解码。

📖 了解原理

📖 相关推荐