上传文件
  1. base64hub
  2. 密钥与哈希
  3. CSR 解码器

CSR 解码器(PKCS#10 请求查看器)

粘贴 -----BEGIN CERTIFICATE REQUEST----- 块,确认主机名、密钥长度和主体都正确,再交给 CA 生成无法再修改的证书。

免费 无需注册,不限次数 本地 不上传任何内容 SAN 逐一列出请求的扩展 更新于 2026年10月27日

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何检查 CSR

  1. 粘贴请求,从 -----BEGIN CERTIFICATE REQUEST----- 一直到对应的 END 行,或者把 .csr / .req 文件拖到框中。
  2. 检查卡片上的 主体、主体备用名称(SAN) 和 公钥。
  3. 也可以在 CSR 下方粘贴私钥。它的卡片只显示密钥类型和长度,以及一个可以与 CSR 进行比较的 SPKI SHA-256 固定值(pin)。
  4. 如果 CA 门户需要其他格式的请求,使用 复制 PEM 或 下载 .der。

证书签名请求里有什么

CSR(PKCS#10)很小:一个主体名称、一个公钥、可选的属性,以及对这一切的签名。解码器会这样列出它们:

字段说明
主体C=US, O=Example Corp, CN=app.example.com。对于域名验证(DV)证书,CA 只保留它验证过的内容,所以组织字段通常会被丢弃。
版本PKCS#10 始终为 v1。
公钥类型和长度,例如 RSA 2048 或 EC P-256。这部分会原封不动地进入证书。
签名算法通常是 sha256WithRSAEncryption 或 ecdsa-with-SHA256。
主体备用名称(SAN)、密钥用法、扩展密钥用法请求的扩展。CA 可能照办、改写或丢弃它们。
属性其他 PKCS#9 属性。challengePassword 只会显示为已设置,值会被隐藏。
SPKI SHA-256 固定值(pin)公钥的哈希。签发的证书会有相同的固定值。

提交前值得发现的错误

  • 没有主体备用名称。 浏览器匹配主机名时会忽略 CN。公共 CA 通常会帮你把 CN 复制到 SAN 中;内部 CA 往往不会,结果就是证书因名称不匹配而失败。
  • 漏掉了某个名称。 www.example.com 和 example.com 是两个不同的条目。通配符 *.example.com 不包括 example.com 本身。
  • 密钥太短。 受公众信任的 CA 要求 RSA 至少 2048 位。RSA 1024 的 CSR 会被拒绝。
  • 密钥不对。 在另一台服务器上或用旧密钥文件生成的 CSR,签发出的证书你的服务器无法使用。请比较固定值。
  • 主体中有拼写错误。 现在改起来很便宜,等 OV 或 EV 验证走完之后再改就很贵了。

工具会读取 CSR,但不会检查它的自签名。被截断或被修改过的请求仍可能解码成功,有疑问时请运行 openssl req -verify。

用 OpenSSL 创建和验证 CSR

一步生成新的 RSA 密钥和包含两个主机名的 CSR(-addext 需要 OpenSSL 1.1.1 或更高版本):

openssl req -new -newkey rsa:2048 -nodes -keyout app.key -out app.csr \
  -subj "/CN=app.example.com" \
  -addext "subjectAltName=DNS:app.example.com,DNS:www.app.example.com"

检查它(包括签名),并确认它与密钥匹配:

openssl req -in app.csr -noout -text -verify
diff <(openssl req -in app.csr -noout -pubkey) <(openssl pkey -in app.key -pubout) && echo "key matches"

对于完好的请求,-verify 那一行会输出 Certificate request self-signature verify OK。更多命令行用法见 OpenSSL 页面。

CSR 的 Base64 长什么样

和证书一样,CSR 也是包裹在 PEM 中的 DER。RSA-2048 请求的 DER 大约有 650–700 字节,所以它的 Base64 以 MIIC 开头;EC P-256 请求接近 300 字节,以 MIIB 开头。如果你收到的内容以 MIIC 开头,但头部写的是 CERTIFICATE,那它是证书。请改为粘贴到 证书解码器;两者用的是同一个组件,它会告诉你找到的是哪一种。

常见问题

怎么查看 CSR 中包含哪些域名?

粘贴 CSR,查看 主体备用名称(SAN)。证书覆盖哪些主机名由这个列表决定;浏览器会忽略主体中的 CN。如果没有这一行,说明请求中不含 SAN 扩展。

怎么判断 CSR 是否与我的私钥匹配?

把 CSR 和私钥一起粘贴。如果两张卡片显示的 SPKI SHA-256 固定值(pin) 相同,它们就属于同一个密钥对。用 OpenSSL 的话,比较 openssl req -in app.csr -noout -pubkey 和 openssl pkey -in app.key -pubout 的输出。

CSR 里包含私钥吗?

不包含。CSR 包含公钥、申请的名称,以及一个用私钥生成的签名,用来证明你持有私钥。它可以放心地发给 CA,私钥则应留在服务器上。

PEM 头部的 NEW CERTIFICATE REQUEST 是什么意思?

这是 Java keytool 和一些 Windows 工具使用的旧标签。内容是同样的 PKCS#10 结构,解码器会像读取其他 CSR 一样读取它。