CSR解码器
在证书颁发机构签署 TLS 证书之前,您需要向其提交一份证书签名请求(CSR)。它是一段 Base64 数据,包含您希望在证书上显示的主体信息和您的公钥,以及证明您持有对应私钥的签名。此解码器可解析 PEM 格式的 CSR 并显示主体各字段和公钥参数,让您可以在提交给 CA 之前检查通用名称、组织和密钥大小。
如何解码 CSR
-
1
粘贴 CSR
包含 `-----BEGIN CERTIFICATE REQUEST-----` 和 `-----END CERTIFICATE REQUEST-----` 标记。空白字符可以容忍。
-
2
运行解码器
请求会被解析,主体各字段和公钥会被读取出来。
-
3
检查输出
检查通用名称、组织等主体字段,以及密钥的算法和大小。
-
4
根据结果行动
如果主体或密钥看起来有误,请在提交给 CA 之前重新生成 CSR。
解码器显示什么
CSR 是一种 ASN.1 结构(PKCS #10)。解码器从中读取两项内容:
- 主体:所请求的区分名称(Distinguished Name)字段,通常包括国家(C)、组织(O)、组织单位(OU)、地区(L)、省/州(ST)和通用名称(CN)。
- 公钥:算法(RSA、EC、DSA)以及以位为单位的密钥大小。
CSR 内部的签名是向 CA 证明提交方持有对应私钥的依据。本解码器不显示该签名;CA 在处理请求时会验证它。
输出示例
对于典型的域名证书请求,输出如下:
Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA
主体中属性的确切名称取决于请求的生成方式。
需再次核对的字段
- 通用名称(CN):应为主主机名。现代浏览器会忽略CN而仅检查SAN标识符,但许多证书颁发机构仍要求提供有效的CN。
- 主题备用名称(SAN):列出证书将保护的所有主机名及通配符。浏览器会根据SAN而非CN进行匹配。
- 国家/地区(C):两位字母的ISO代码(如US、GB、DE),而非完整名称。认证机构会拒绝无效代码。
- 密钥长度:RSA 2048为最低标准;3072或4096可提供更高安全性。 ECDSA P-256是现代的理想替代方案,且生成的证书体积更小。
- 签名算法:需使用 SHA-256 或更高版本;SHA-1 已长期被弃用,将不予支持。
关于主题备用名称(SAN)
解码器会显示请求的主体,但不显示 SAN 扩展。浏览器按 SAN 而非 CN 匹配证书;因此如果证书需要覆盖更多主机名,请在生成请求时把它们包含进去,例如:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
解码器无法解析 CSR 时
最常见的原因是 PEM 块被截断或损坏:
- 文本被截断:请重新粘贴完整块,包括两个标记。
- 被插入了换行:请按生成时的原样粘贴。
- 内容错误:误粘贴的公钥、证书或私钥无法作为 CSR 解析。
生成匹配的密钥
CSR 始终与私钥一同生成。典型命令如下:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
或者 ECDSA :
openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr
妥善保管私钥,若其泄露,证书必须被撤销。
常见问题
CSR仅包含公开信息(公钥、主体、SAN)及签名,可安全地与证书颁发机构共享或直接粘贴至解码器中。必须保密的是对应的私钥。
不能。本解码器接受带 BEGIN/END CERTIFICATE REQUEST 标记的文本 PEM 格式。要使用二进制的 DER 请求,请先将其转换为 PEM,例如使用 openssl req -in request.der -inform DER -out request.pem。
不。大多数公共证书颁发机构(如 Let’s Encrypt、DigiCert 和 Sectigo)仅要求提供域名(CN)和系统名称(SAN),而不会考虑域验证证书中的组织(O)、用户组(OU)、位置(L)、服务类型(ST)及证书类型(C)等字段;组织验证证书与扩展验证证书则会分别验证这些字段。
最常见的原因是粘贴的文本被截断或被插入了换行,或者粘贴的是密钥或证书而不是 CSR。请将两个标记之间的完整块重新粘贴。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
cURL 命令生成器
根据 HTTP URL、请求头、认证、JSON、原始数据或表单字段,在浏览器中私密生成适用于 POSIX Shell 或 PowerShell 的 cURL 命令。
此工具还提供其他语言版本
- CSR Çözücü [TR]
- Decodificador de CSR [ES]
- أداة فك ترميز CSR [AR]
- Décodeur CSR [FR]
- CSR-decoder [NL]
- CSR 디코더 [KO]
- Dekoder CSR [ID]
- CSR Decoder [EN]
- Bộ giải mã CSR [VI]
- CSRデコーダー [JA]
- ตัวถอดรหัส CSR [TH]
- Decodificador de CSR [PT]
- CSR-Decoder [DE]
- CSR-avkodare [SV]
- Dekoder CSR [PL]
- Decoder CSR [IT]
- Декодер CSR [RU]