申请 SSL/TLS 证书时,你要先生成一对密钥(私钥留在自己服务器,公钥交出去),再把公钥连同域名、组织等信息打包成一个 CSR(Certificate Signing Request,证书签名请求),提交给证书颁发机构(CA)。CA 核验后用你 CSR 里的公钥和信息签发证书。
私钥必须自己保管,绝不能给别人,也不该经过任何网络。 本工具的密钥对和 CSR 全部在你的浏览器里生成(RSA 用 node-forge,ECDSA 用浏览器原生 Web Crypto,SM2 用 sm-crypto),不上传服务器,刷新即销毁 —— 请生成后立即下载私钥。正式生产环境仍建议直接用 OpenSSL 在目标服务器上生成。
| 字段 | 缩写 | 示例 | 说明 |
|---|---|---|---|
| 通用名 | 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 才需要完整的组织信息。
RSA PRIVATE KEY)。PRIVATE KEY)。P-384 建议配 SHA-384。EC PRIVATE KEY),同时显示 Hex 私钥 / 公钥。
再选签名摘要(默认 SHA-256;SM2 固定为 SM3)。.key 私钥存到安全的地方,再复制 / 下载 .csr 提交给证书商。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 即可。