CSR 生成器
要获得 TLS 证书,您需要向证书颁发机构提交证书签名请求:您的域名、您的公钥,以及您持有对应私钥的证明。此生成器会在浏览器中生成 PEM 格式的 CSR 及其 RSA 私钥,字段和密钥大小由您指定。私钥永远不会离开页面,但请务必在关闭标签页前下载,因为服务器不会保存任何内容。
如何生成 CSR
-
1
输入通用名称(CN)
证书将保护的主机名,例如 `www.example.com`。允许使用 `*.example.com` 之类的通配符。
-
2
填写组织字段(可选)
O(组织)、OU、L(城市)、ST(州/省)、C(国家代码),以及可选的电子邮件地址。域验证证书会忽略其中大部分字段;OV 和 EV 证书则要求填写。
-
3
选择密钥大小
RSA 2048(默认,通用兼容)或更强的 RSA 3072 和 RSA 4096。
-
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 地址签发证书,您必须使用主机名。
生成之后
- 妥善保管私钥。权限 0600,由 Web 服务器用户所有。
- 将 CSR 粘贴到 CA 的网页表单或命令行工具中(Let’s Encrypt 通过 ACME 通常会自动处理)。
- 收到签发的证书(以及中间链)。
- 在服务器上同时安装证书链和私钥。
- 使用 SSL 检查工具进行验证。
常见问题
不会。密钥生成完全在您的浏览器中进行。页面不会在服务器上存储密钥。请立即下载密钥文件;一旦关闭标签页,它就会消失。
对于大多数公共网站,RSA 2048 是安全通用的默认选择,生成也很快。如果您想要更大的安全余量,并且可以接受较慢的密钥生成和握手,请选择 3072 或 4096 位。
可以。将 *.example.com 用作通用名称即可。请记住,通配符只匹配一级子域,而且大多数 DV 签发机构要求通配符证书进行 DNS 验证(而非 HTTP)。
CSR 是一个请求:它表示“请为这些主机名签署此公钥“。证书是 CA 在签名后返回的内容。CSR 有效期很短,不会安装到服务器上;实际提供 TLS 服务的是证书。
相关工具
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
Base58 编码器和解码器
编码 UTF-8 文本或十六进制字节,并使用 Bitcoin、Ripple 或 Flickr 字母表安全解码 Base58。
Base32 编码器和解码器
使用 RFC 4648 字母表编码和解码 Base32 字符串。适用于 TOTP 密钥、大小写不敏感的令牌和人工输入的标识符。
AES 加密 / 解密
使用 OpenSSL AES cipher 加密和解密低风险文本。口令会用 SHA-256 哈希,Base64 输出包含 IV 加密文。