HTTPS 证书过期排查
运维人员接到线上告警,某业务域名 HTTPS 握手失败。用本工具直接粘贴服务器返回的 PEM 公钥,瞬间解析出证书颁发者、有效期起止和签名算法。对比 RFC 5280 标准发现,证书链中二级 CA 的 NotAfter 已超期 3 小时,而叶子证书仍在有效期内。精准定位到中间证书未自动续期,而非应用层证书配置问题,省去逐层 openssl 命令排查的繁琐。
编码加密 · JWT / Token
解析 PEM/DER 证书/链
运维排查 SSL 握手失败时,最怕的是证书链不完整或格式混用。PEM 与 DER 混着传、中间证书缺失,浏览器报错却看不出根因。粘贴证书原文或上传文件,工具逐层解析签发者、有效期、公钥算法与签名算法,并标明链中证书的父子关系。解析在服务端完成,不保留任何上传内容。
运维人员接到线上告警,某业务域名 HTTPS 握手失败。用本工具直接粘贴服务器返回的 PEM 公钥,瞬间解析出证书颁发者、有效期起止和签名算法。对比 RFC 5280 标准发现,证书链中二级 CA 的 NotAfter 已超期 3 小时,而叶子证书仍在有效期内。精准定位到中间证书未自动续期,而非应用层证书配置问题,省去逐层 openssl 命令排查的繁琐。
嵌入式工程师用 OpenSSL 生成了一组自签名证书用于设备间 TLS 通信,但生产环境报错 'unable to get local issuer certificate'。将 PEM 文件内容粘贴到解析框,工具立即显示证书序列号、公钥算法(RSA 2048)以及 X.509 v3 扩展中的 Basic Constraints。发现签发者 DN 与主体 DN 完全一致(自签名),但 Key Usage 字段缺失 digitalSignature,导致 OpenSSL 1.1.1 拒绝握手。添加对应扩展后问题解决。
甲方交付的服务器证书是 DER 二进制格式(.cer),而 Nginx 配置要求 PEM 文本格式。用本工具上传 DER 文件,解析结果直接展示其 Subject、Issuer 和 Thumbprint(SHA-256)。确认证书内容无误后,工具自动提供 PEM 格式的等效文本,可直接复制粘贴到 ssl_certificate 配置项,无需额外安装 openssl 或转换脚本,避免手动 base64 编码出错。
安全审计人员收到一份包含根 CA、中间 CA 和叶子证书的 PKCS#7 链文件。将完整链粘贴后,本工具按顺序列出每张证书的序列号、有效期和公钥指纹。发现中间 CA 的 Authority Key Identifier 指向的根 CA 序列号与实际根证书不符——中间 CA 被替换。利用工具输出的 Issuer 哈希值,快速定位到正确的根证书库,确认链被篡改,避免在合规审计中误判。
企业员工通过双向 TLS 访问内部 OA 系统,某用户反馈无法登录。管理员导出该用户的 .p12 客户端证书,用本工具解析其 Subject DN 中的 CN 字段(用户名)和 SAN(email)。发现 SAN 中的邮箱后缀是旧域名 @oldcorp.com,而服务器端 ACL 只允许 @newcorp.com 后缀。工具直接展示扩展字段,无需加载到浏览器或代码中解码,5 秒内定位到证书属性与策略不匹配。
1.PEM 格式中混入额外空格或空行
-----BEGIN CERTIFICATE-----
MIIBxT...
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIBxT...
-----END CERTIFICATE-----PEM 的 Base64 正文每行最多 64 字符,但行首/行尾的额外空格会导致 Base64 解码失败。RFC 7468 要求严格按行分隔,无前导/尾随空白。
2.DER 文件以文本方式粘贴,内容被转义
从 Windows 记事本复制 DER 二进制内容(显示为乱码)直接粘贴到输入框将 DER 文件用 base64 -w0 cert.der 命令编码为单行 PEM 字符串后粘贴;或直接上传 .der 文件DER 是纯二进制格式,文本粘贴会丢失不可见字节(如 0x00),且可能被浏览器编码破坏。工具输入框设计为接收文本,DER 须先编码。
3.证书链顺序颠倒,根证书放在最前面
-----BEGIN CERTIFICATE-----
(根证书)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(中间证书)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(叶子证书)
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
(叶子证书)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(中间证书)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(根证书)
-----END CERTIFICATE-----RFC 5280 规定证书链顺序应为「叶子 → 中间 → 根」。解析器按此顺序构建信任链,逆序会导致签名验证失败或输出错误路径。
4.PEM 头尾标记大小写或空格错误
-----BEGIN CERTIFICATE -----
MIIBxT...
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIBxT...
-----END CERTIFICATE-----PEM 标记必须严格为 5 个连字符 + BEGIN/END + 空格 + 类型 + 5 个连字符,中间无额外空格。RFC 7468 定义标记为固定字符串,空格位置错误会导致解析器无法识别。
5.将私钥文件当作证书解析
直接粘贴 -----BEGIN RSA PRIVATE KEY----- 的内容到证书解析工具确认文件头为 -----BEGIN CERTIFICATE----- 或 -----BEGIN X509 CERTIFICATE-----;私钥应使用专门的私钥解析工具X.509 证书和私钥虽然都使用 PEM 封装,但 ASN.1 结构完全不同。证书包含公钥、签名、有效期等,私钥仅包含密钥材料,解析器会因 ASN.1 标签不匹配而报错。
6.复制时遗漏了 PEM 的结束标记行
-----BEGIN CERTIFICATE-----
MIIBxT...
(只复制到 Base64 内容结束,缺少结束标记)-----BEGIN CERTIFICATE-----
MIIBxT...
-----END CERTIFICATE-----PEM 解析依赖成对的 BEGIN/END 标记来界定内容边界。缺少结束标记会导致工具认为输入不完整,无法触发解析流程。
7.使用错误的换行符(CR 而非 CRLF)
在 Linux 上生成 PEM 后,用 Windows 记事本打开并保存,导致每行结尾为 CR+CRLF使用 dos2unix 或 sed 's/\r$//' 清理换行符;或直接使用工具内置的换行符自动修复功能RFC 7468 要求 PEM 使用 CRLF 或 LF 换行,但双重 CR(0x0D 0x0D)会被部分解析器视为非法字符,导致 Base64 解码时长度校验失败。
Modulus = p × q
pRSA 大素数之一,512–4096 位qRSA 大素数之二,与 p 等长ModulusRSA 公钥模数,n = p×q解析 2048 位 RSA 证书:p=0xE...1(1024 位)、q=0xF...7(1024 位),Modulus = p×q = 0x...(2048 位),工具输出 Modulus 十六进制串与十进制值,用于验证签名或加密。
PEM 是纯文本格式,文件开头是 `-----BEGIN CERTIFICATE-----`,结尾是 `-----END CERTIFICATE-----`,中间是一长串 Base64 编码的字符,可以用记事本打开看。DER 是二进制格式,用记事本打开会显示乱码。本工具同时支持这两种格式,上传或粘贴时工具会自动识别,不需要手动区分。如果文件后缀是 .crt、.cer、.pem,绝大多数是 PEM;后缀是 .der 或 .cer(二进制)则是 DER。
可以。本工具支持解析完整的证书链(PEM 格式下多个 `-----BEGIN CERTIFICATE-----` 块拼接在一起)。工具会依次解析每个证书,并在结果区按顺序列出每张证书的信息,同时标注每张证书在链中的位置(第 1 张是叶子证书,第 2 张是中间 CA,最后是根 CA)。但请注意:DER 格式不支持链,一张 DER 文件只能包含一张证书。
不一样。序列号是 CA(证书颁发机构)在签发证书时分配给这张证书的唯一编号,类似于身份证号,在同一个 CA 下不会重复。证书指纹(SHA-1 或 SHA-256 哈希值)是整张证书内容的数字摘要,用于快速比对证书是否被篡改。序列号通常用于吊销查询(CRL 或 OCSP),而指纹用于本地校验。结果区里这两项会分开显示,请勿混淆。
这通常是因为证书的 `notBefore` 或 `notAfter` 字段是一个异常值(比如 0 或 2^31-1)。Unix 时间戳为 0 对应 1970-01-01,最大 32 位有符号整数(2147483647)对应 2038-01-19。出现这种情况,说明这张证书的签发或过期时间被错误地写入了占位符或极限值,证书本身大概率是无效或测试用的。本工具忠实显示原始字段值,不会自动修正。
这些是 X.509 证书 DN(Distinguished Name,专有名称)里的标准字段缩写:CN = Common Name(通用名称,通常是域名或个人姓名),O = Organization(组织名,公司或机构),OU = Organizational Unit(部门,如 IT 部或财务部),C = Country(国家代码,如 CN 是中国),L = Locality(城市),ST = State/Province(省/州)。工具在解析结果里会同时显示缩写和对应的值,方便对照。
本工具是 BE(后端处理)实现,意味着你粘贴或上传的证书内容会通过网络发送到服务器进行解析。解析完成后,服务器不会持久化存储你的证书文件,处理结果返回后原始数据即被丢弃。但如果你处理的是包含敏感信息的私钥(虽然私钥通常不应该被解析工具处理),或者对数据保密有极高要求,建议在本地使用 OpenSSL 命令进行解析。
这是两个完全不同的步骤。公钥算法(如 RSA、ECDSA)决定了证书里公钥的数学类型和密钥长度(比如 RSA 2048 位)。签名算法(如 sha256WithRSAEncryption)是 CA 在签发证书时,用它的私钥对证书内容进行签名的算法。简单说:公钥算法是你的证书自己的加密能力,签名算法是 CA 盖章用的方法。两者可以不同,比如一张 ECDSA 公钥的证书,可以被一个 RSA 的 CA 用 sha256WithRSA 签名。
最常见的原因有三个:第一,粘贴的内容包含了多余的空行、空格或换行符,请确保只粘贴 `-----BEGIN CERTIFICATE-----` 到 `-----END CERTIFICATE-----` 之间的完整内容。第二,证书本身已损坏或被截断,检查文件大小是否正常。第三,你粘贴的可能是私钥(`-----BEGIN RSA PRIVATE KEY-----`)或证书签名请求(`-----BEGIN CERTIFICATE REQUEST-----`),这三种格式开头标记不同,本工具只解析证书。请确认开头标记正确。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。