CSR 生成器

在浏览器中生成 PKCS#10 证书签名请求。创建新密钥或导入现有 PKCS#8 私钥,填写 Subject 和 SAN,然后下载 CSR

请求选项

设置证书签名请求中所用的密钥、Subject 及 SAN 条目

密钥来源
算法
RSA 密钥长度
签名哈希

主体(可分辨名称)

所有字段均为可选,但大多数 CA 至少需要填写 Common Name

主体备用名称(SAN)

每行一条,或用逗号分隔。某类留空则不包含该类型

已生成的 CSR

复制或下载证书签名请求,以及生成的私钥(若创建了新密钥)

尚未生成 CSR

填写表单后点击「生成 CSR」以创建请求

什么是 CSR?

证书签名请求(CSR)是一份小型 PKCS#10 文档,证书颁发机构(CA)需要它来签发 TLS 或代码签名证书。它将密钥对的公钥部分、你希望 CA 认证的身份信息(Subject),以及 DNS 名称或 IP 地址等附加标识符(Subject Alternative Names,即 SAN)打包在一起,并由对应的私钥签名

本工具完全在浏览器中使用 Web Crypto API 和 @peculiar/x509 构建 CSR,你的密钥和请求信息不会发送到任何服务器

适用场景

  • 当公共 CA(Let's Encrypt、DigiCert、ZeroSSL、Sectigo 等)的申请流程要求你自行粘贴 CSR 时,使用本工具生成 TLS 证书请求
  • 为内部证书颁发机构(基于 ACME、smallstep、EJBCA、AD CS 等)生成 CSR,无需信任托管表单
  • 导入现有 PKCS#8 PEM 私钥并仅签署新的 CSR,以相同私钥重新签发证书

表单填写说明

  • 密钥来源 — 选择“生成新密钥”以创建新的密钥对,或选择“导入现有密钥”以粘贴未加密的 PKCS#8 PEM 私钥。不接受加密密钥、旧版 RSA PRIVATE KEY 及 EC PRIVATE KEY 块,请先使用 openssl pkcs8 -topk8 -nocrypt 进行转换
  • 算法 — RSA 兼容性最广,是默认选项。ECDSA 生成的签名更小,现代 CA 和 TLS 客户端均广泛支持
  • Subject — 大多数公共 CA 仅关注 Common Name,并以 DNS SAN 列表作为权威依据,但私有 CA 可能仍需要完整的 DN 信息
  • SAN 条目 — 列出你希望证书覆盖的主机名、IP 地址、电子邮件地址或 URI,每行一个,或以逗号分隔

注意事项

  • CSR 旁显示的私钥在本地生成,绝不离开你的浏览器。请在关闭标签页前保存私钥——没有匹配的私钥,已签发的证书将无法使用
  • 公共 CA 要求 Common Name(或至少一个 SAN 条目)为可供其验证的 DNS 名称。IP 地址 SAN 主要适用于内部证书
  • 生成的私钥未经加密。如需在存储前添加密码保护,请使用 openssl pkcs8 -in key.pem -topk8 -out key-enc.pem
  • 仅支持 RSA(2048/3072/4096)和 ECDSA(P-256/P-384/P-521)。EdDSA 因在浏览器和 CA 之间的兼容性尚不稳定,暂未纳入支持

使用方法

在浏览器中生成 PKCS#10 证书签名请求。创建新密钥或导入现有 PKCS#8 私钥,填写 Subject 和 SAN,然后下载 CSR