CSR 生成器

生成 CSR
下一个

要获得 TLS 证书,您需要向证书颁发机构提交证书签名请求:您的域名、您的公钥,以及您持有对应私钥的证明。此生成器会在浏览器中生成 PEM 格式的 CSR 及其 RSA 私钥,字段和密钥大小由您指定。私钥永远不会离开页面,但请务必在关闭标签页前下载,因为服务器不会保存任何内容。

如何生成 CSR

  1. 1

    输入通用名称(CN)

    证书将保护的主机名,例如 `www.example.com`。允许使用 `*.example.com` 之类的通配符。

  2. 2

    填写组织字段(可选)

    O(组织)、OU、L(城市)、ST(州/省)、C(国家代码),以及可选的电子邮件地址。域验证证书会忽略其中大部分字段;OV 和 EV 证书则要求填写。

  3. 3

    选择密钥大小

    RSA 2048(默认,通用兼容)或更强的 RSA 3072 和 RSA 4096。

  4. 4

    下载两个文件

    `.csr` 交给您的 CA;`.key` 保留在您的服务器上。请妥善保管密钥:丢失就意味着重新开始。

生成的内容

两个 PEM 文件:

example.csr(公开,发送给 CA):

-----BEGIN CERTIFICATE REQUEST-----
MIIC...
-----END CERTIFICATE REQUEST-----

example.key(私密,保留在您的服务器上):

-----BEGIN PRIVATE KEY-----
MIIE...
-----END PRIVATE KEY-----

CSR 使用私钥签名,作为所有权的证明。当 CA 签发证书时,证书的公钥将与 CSR 中的密钥匹配,而该密钥又与您服务器上的私钥匹配。

此生成器创建的 CSR 只包含您输入的通用名称,不带主题备用名称(SAN)扩展。如果您的证书需要覆盖多个主机名,请使用 CA 自带的工具:Let’s Encrypt 等 ACME 客户端会为您构建请求,大多数 CA 的网页表单在提交时会补充额外名称。

按证书类型划分的字段要求

字段 DV 证书需要吗? OV/EV 证书需要吗?
通用名称(CN)
组织(O) 是,已验证
组织单位(OU) 可选 可选
地点(城市) 可选 是,已验证
州 / 省 可选 是,已验证
国家(2 个字母) 建议 是,已验证
电子邮件地址 可选 可选

Let’s Encrypt 和大多数自动化 DV 签发机构只查看通用名称。签发 OV/EV 证书的企业 CA 会将组织信息与商业登记记录进行核验。

密钥大小选择

密钥大小 优点 缺点
RSA 2048 通用兼容,快速 安全余量较小
RSA 3072 更强,仍然通用 生成和握手较慢
RSA 4096 最强,仍然通用 最慢且最大

对于公共 Web 服务器,RSA 2048 是安全默认选择。如果您希望获得更大的安全余量,并且可以接受较慢的密钥生成、较慢的握手和较大的证书,请选择 3072 或 4096 位。

CSR 容易出错的地方

  • 证书未覆盖主机名:当证书未覆盖您访问的确切名称时,浏览器会显示 “NET::ERR_CERT_COMMON_NAME_INVALID”。通用名称必须与完整主机名匹配,包括使用 www 时。由于此生成器创建的是单 CN 请求,需要额外名称时请使用 CA 的工具。
  • 通配符限制:通配符 *.example.com 只匹配一级子域。它不匹配 api.v2.example.com
  • 根域与通配符是不同名称*.example.com 不覆盖裸域 example.com;证书中需要将两者作为独立名称。
  • IP 地址:大多数公共 CA 不再为 IP 地址签发证书,您必须使用主机名。

生成之后

  1. 妥善保管私钥。权限 0600,由 Web 服务器用户所有。
  2. 将 CSR 粘贴到 CA 的网页表单或命令行工具中(Let’s Encrypt 通过 ACME 通常会自动处理)。
  3. 收到签发的证书(以及中间链)。
  4. 在服务器上同时安装证书链和私钥。
  5. 使用 SSL 检查工具进行验证。

常见问题

不会。密钥生成完全在您的浏览器中进行。页面不会在服务器上存储密钥。请立即下载密钥文件;一旦关闭标签页,它就会消失。

对于大多数公共网站,RSA 2048 是安全通用的默认选择,生成也很快。如果您想要更大的安全余量,并且可以接受较慢的密钥生成和握手,请选择 3072 或 4096 位。

可以。将 *.example.com 用作通用名称即可。请记住,通配符只匹配一级子域,而且大多数 DV 签发机构要求通配符证书进行 DNS 验证(而非 HTTP)。

CSR 是一个请求:它表示“请为这些主机名签署此公钥“。证书是 CA 在签名后返回的内容。CSR 有效期很短,不会安装到服务器上;实际提供 TLS 服务的是证书。

相关工具