CSR 解码器
在将 PKCS #10 证书签名请求发送给证书颁发机构之前对其进行解码。粘贴 PEM 块或 base64 DER,即可查看主题、公钥类型和大小、签名算法、请求的自签名验证是否通过、SPKI SHA-256 固定值,以及请求的扩展,例如主题备用名称、密钥用法、扩展密钥用法和基本约束。
常见问题
什么是证书签名请求?
CSR 是一种 PKCS #10 结构,其中包含你的公钥、你希望写入证书的主体名称和可选扩展,并由你的私钥签名。证书颁发机构会读取它来签发证书。私钥不会离开你的服务器。
支持哪些输入格式?
粘贴以 -----BEGIN CERTIFICATE REQUEST----- 或较旧的 -----BEGIN NEW CERTIFICATE REQUEST----- 开头的 PEM 块,或者粘贴不带标头、以 base64 编码的原始 DER。只会解码输入中的第一个请求。
签名检查结果说明什么?
CSR 使用与其中公钥对应的私钥签名。签名有效,说明该请求由持有该私钥的人创建,且之后未被篡改。签名无效通常意味着文件被编辑或损坏。
为什么我的 CSR 没有显示主题备用名称?
浏览器会忽略通用名称,并要求在主题备用名称扩展中列出域名。如果解码器没有列出任何名称,说明请求未包含 extensionRequest 属性。许多 CA 会自行添加这些名称,但使用 OpenSSL 时,你可以通过 -addext "subjectAltName=DNS:example.com,DNS:www.example.com" 添加它们。
什么是 SPKI pin?
它是请求中 SubjectPublicKeyInfo 的 base64 SHA-256 哈希。从此 CSR 签发的证书会携带相同的公钥,因此也具有相同的 pin,你可以据此确认证书对应你的密钥。
可以识别哪些密钥类型?
RSA 请求会显示模数大小,EC 请求会显示曲线(例如 P-256 或 P-384),Ed25519 和 Ed448 密钥则会直接显示名称。签名算法会连同其哈希算法一起显示,例如带 SHA-256 的 RSASSA-PKCS1-v1_5 或带 SHA-384 的 ECDSA。
是否会显示质询密码等属性?
除扩展请求以外的属性都会按名称列出。结果会显示已设置质询密码,但不会打印其值。未知属性会显示其对象标识符。
什么是关键扩展?
标记为关键的扩展必须能被任何处理该证书的软件理解,否则证书会被拒绝。解码器会标记此类扩展,基本约束和密钥用法通常属于此类。
CSR 会被保存吗?
不会。请求只会在内存中解码,不会记录或保存。CSR 只包含公开数据,因此在线解码不会暴露你的私钥。
有尺寸限制吗?
输入最多可包含 65,536 个字符,远超任何常规 CSR 所需长度。典型的 RSA 2048 请求以 PEM 格式表示时约有 1,000 个字符。