hero-faq-1

CSR 解码器

PKCS#10是什么?

PKCS#10 是定义 CSR 格式的标准,规定于 RFC 2986 中。它规定了证书申请包含哪些字段以及这些字段的结构方式,这正是为什么同一个 CSR 可以用于任何证书颁发机构(CA),而不是只能绑定在您购买证书的那家 CA 上。

复制链接

为什么我签发的证书中缺少OU字段?

因为该字段已不再被允许使用。CA/Browser论坛的SC47提案规定,自2022年9月1日起,公开信任的TLS证书中禁止包含Organizational Unit(组织单位)字段,原因是CA无法可靠地验证部门名称的真实性。您在生成CSR时仍然可以填写OU字段,解码器也会显示该内容,但CA在签发证书前会将其移除。这属于正常情况,并非出现错误。

复制链接

主题备用名称(Subject Alternative Name)是什么,为什么它比通用名称(Common Name)更重要?

Subject Alternative Name(SAN,主题备用名称)是一种扩展字段,用于列出证书涵盖的所有主机名。现代浏览器只读取 SAN 列表,完全忽略 Common Name(通用名称),因此如果某个域名只出现在 Common Name 中而不在 SAN 列表里,验证就会失败。大多数公共 CA 在签发证书时会自动将 Common Name 复制到 SAN 列表中,但请向您的 CA 确认这一点,而不要仅凭假设行事。如果您需要在一张证书上使用多个主机名,请将它们全部列出。

复制链接

解码CSR后我会看到哪些信息?

主体(Subject),也称为可分辨名称(Distinguished Name),其中包含通用名称(Common Name)、组织(Organization)、组织单位(Organizational Unit)、所在地(Locality)、州/省(State)和国家(Country)。公钥及其算法(RSA 或 ECDSA)以及密钥的位数大小。请求签名所使用的签名算法。此外,如果请求中包含,还会列出主题备用名称(Subject Alternative Names),列明证书将覆盖的每一个域名。

复制链接

在将CSR发送给证书颁发机构(CA)之前,是否必须对其进行解码?

不需要。请按照服务器生成的编码文本原样提交,包括头部和尾部行。CA会在他们那边解析它。解码是为了您自己的利益,而不是他们的:这是您在CA将您的错误变成证书之前,发现错误域名或两位国家代码的方式。

复制链接

我可以在命令行中查看CSR的文本内容吗?

是的。openssl req -in example.csr -noout -text 会将解码后的内容打印到您的终端。加上 -verify 还可以检查 CSR 的自签名。有关输出中各部分的含义,请参阅上面的 OpenSSL 部分。

复制链接

你能解密CSR吗?

不能,因为CSR并未被加密。这是关于证书请求最常见的误解之一。CSR是经过Base64编码的ASN.1数据,任何人都可以在没有密钥和密码的情况下对其解码。它包含的是您的公钥,而绝非私钥。人们所说的”解密CSR”实际上指的是解码,而这正是本工具和openssl req命令所执行的操作。

复制链接

CSR 解码器如何工作?

CSR 解码器从证书签名请求中获取编码数据并将其翻译成纯文本,让你了解每个字段的含义以及编码值代表的意义。

复制链接

什么是CSR解码器?

CSR 解码器是一种工具,用于读取证书签名请求并以易懂的语言显示其内容。它会还原使 CSR 内容难以肉眼阅读的 Base64 和 ASN.1 编码,然后标注每个字段:通用名称(Common Name)、组织(Organization)、组织单位(Organizational Unit)、城市(Locality)、州/省(State)、国家(Country)、公钥算法、密钥长度、签名算法以及所有的主题备用名称(Subject Alternative Names)。您可以使用它在提交请求之前进行验证,或用来查明已有证书出现异常行为的原因。

复制链接

如何读取CSR文件?

将其粘贴到 CSR 解码器中(有时也称为 CSR 查看器或 CSR 阅读器),然后阅读带标签的输出内容。CSR 看起来像是一大段杂乱无章的字符,因为它是经过 Base64 编码的二进制数据,所以直接用文本编辑器打开该文件是看不出任何有用信息的。如果你更喜欢使用命令行,openssl req -in example.csr -noout -text 可以打印出同样的信息。

复制链接