证书解析器

X.509 证书是用于 TLS/SSL 的公钥证书标准格式。此工具解析 PEM 编码的证书,显示主题、颁发者、有效期、公钥详情和扩展信息。是调试 HTTPS 连接问题的必备工具。

规范

常见用例

  • 调试 SSL/TLS 连接错误("证书已过期")
  • 验证证书是否涵盖正确的域名
  • 检查证书过期日期以规划续期
  • 检查证书链中的中间证书和根证书
  • 验证证书属性是否满足合规要求

功能

  • 解析 PEM 编码的证书(-----BEGIN CERTIFICATE-----)
  • 显示主题和颁发者可分辨名称
  • 显示有效期(生效日期 / 过期日期)
  • 提取公钥算法和密钥大小
  • 显示主题备用名称(SAN)
  • 显示证书扩展(密钥用途、扩展密钥用途、基本约束)
  • 授权/主题密钥标识符显示
  • CRL 分发点和授权信息访问 URL

示例

自签名证书

试试看 →

一个带有主题备用名称的 example.com X.509 证书。

-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIUb7VAvx3CADEDexgoNd41E9Y5tZowDQYJKoZIhvcNAQEL
BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xFDASBgNVBAoMC0V4YW1wbGUgSW5jMRQwEgYDVQQLDAtF
bmdpbmVlcmluZzEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjYwMTI1MDQ0ODMw
WhcNMjcwMTI1MDQ0ODMwWjB8MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZv
cm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRXhhbXBsZSBJ
bmMxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRQwEgYDVQQDDAtleGFtcGxlLmNvbTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKN/rhprC1rfrwKpj9ZqwRR
4c51daZRMlij1NbmUJn7KiZTghxu1OtOEodGmpcF3xuWxiBYTOKvQZ+qPpED6IAG
IYtANPetAkRbsf/xdZZZ/BRR3jQQ2AVDfyuBSYjYEV4JMVG47JCj7oewgNb0dejv
HI18aBWzIGE6v9Zv5FDt+d3GjJignI8elrGzrnJg85qsd743xSEPALqf1NsyhjtY
Th91DazAOoPzA/DMXzoXUhAf9C5uWQlSdn6JDzs8/ld0c+LZH9ohvC/IN/PfdkYg
NYR2AJutUdxbOPPmcFm46o/WpquV2H0mIMuvdzI+k/tk6wVV2jwu2ysQLwweqecC
AwEAAaOBjjCBizAdBgNVHQ4EFgQU9Th/a8eJZ9DHh5uUGyf+iTSNF14wHwYDVR0j
BBgwFoAU9Th/a8eJZ9DHh5uUGyf+iTSNF14wDwYDVR0TAQH/BAUwAwEB/zA4BgNV
HREEMTAvggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tgg9hcGkuZXhhbXBs
ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAE1rGDKmhMBkcdwZva/9CouLeLOIHBiI
uPH1LV6Pbl2KJ11w1L36SstF17+M3Sn0SJxstCePJWlfLlx6r5JZSyNAQghmgep1
/YWrsDtC3bjs4stOz1FWUgUDs+b7pf+h93lLTShX8mue2rjIXbYJPJx9XsCmyx1R
zLuYSoOSQ/0aR7NSzjqgoHEUNI/2mGTRJ6ngC0vx88ppn+tuk8PyAXt8kp8hPx3I
6lmmyzfuwt0JZIawW2p1nkMlGt2IBIxBBY7vjAHCTDRa69YP08QeImDM13FelUVh
tXPOCJaWXZQmppgKNtmpedswRRtOyl83cqzkz4rZRpjnpPqIEWNQ9bs=
-----END CERTIFICATE-----

一个对应的 PKCS#8 格式 RSA 私钥。

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyjf64aawta368
CqY/WasEUeHOdXWmUTJYo9TW5lCZ+yomU4IcbtTrThKHRpqXBd8blsYgWEzir0Gf
qj6RA+iABiGLQDT3rQJEW7H/8XWWWfwUUd40ENgFQ38rgUmI2BFeCTFRuOyQo+6H
sIDW9HXo7xyNfGgVsyBhOr/Wb+RQ7fndxoyYoJyPHpaxs65yYPOarHe+N8UhDwC6
n9TbMoY7WE4fdQ2swDqD8wPwzF86F1IQH/QublkJUnZ+iQ87PP5XdHPi2R/aIbwv
yDfz33ZGIDWEdgCbrVHcWzjz5nBZuOqP1qarldh9JiDLr3cyPpP7ZOsFVdo8Ltsr
EC8MHqnnAgMBAAECggEAANyt1b1JqlASJPcQMmiABBDsVcJvacW+lOFfNHv/XtIk
AMD3QdfiVnh8BZ2SC+Sbw4nvNVZeMkH4v4j84FcnSjO9YB5Ub+9GSyCXzWdT0zQA
AyeAbe2FSkRqWsI3CETl+iqlMekCPpIfPRYQqSw1w+tTm5APZWHSzpiQA7ydwSsP
sJ1QBq64eXSXFhpyLG0LE4ATeyH9dxj9n9NocL0QOqT+Tl5Dcjlxc7fYmoHStC0q
9Xb5h1Po3kmESAELdUobBbJvJFVK98PMB6osUR4VM4snQJOJZ+4Df7bxU311OgLB
Am/mQjsnyZqBWjDQaUj/BGnapJxqB+a102Ki3XMX4QKBgQDcmUc0c+zfRfnic22Q
ytJ3Y29N1C52GESFulL+cYfwwfVK/VXWT1b/eECABVWZvzP22wyEnkodkYWSoN86
GK2PvH8ii9EpkkCtRabFqmbfqPysTKawu9/BgrVAvEvRQjHHAUZnytwtw+IcL6Nz
EjQ4UrFK+3/rycT05I/ToHRgGQKBgQDPNXI0OSJ1nl7YQOry4C4ekT/uCJAbV7bN
MU49iSMqldlXy+VvSKAwErzvaAtQUolvu3DPw2hcpMxuH+hoHweTA0lu0VbZRKvS
1EhMWQGN2qrSQYcnhvKY/BUbd7KjZ858PeOBcTgyCfBkfdBNgughjsCv2BxKGxQI
Li2gSWSZ/wKBgF0M2pgpffUAE1ON1N2KcBSkAMMXiTGPMvgli/R/9xN6/PjQu3BW
rx+7nZlipqTfng+2fiVCj4jBZVJgQUjEOBG1NPthdqzOYDG2e45NPm+BXHNhMb7C
wLNjawkPY/u0rEKBKy2EyDMVuT6iaZOUTiqj1t0GEQNobIfQEUr3F5+hAoGAZuD3
afxwIovWNXLN9HbgDyc44Zt4yUqcpXZ0jVL4ld0+wzumF8GsXxH+orM64s+IE2Sy
V0WDHHRqV8cZ4hB99z0riY0AnPFeilgB6X5Lqj3GkIweab6z1sdaR3//vuf8em1T
9uHa7+VFaO+aq9FyJa819ljLevPE12buGmY2P8sCgYEAoSk3KwiEO9zvxuuwqdBh
Qv/dvWPgh/KttWcoL6Axt1z4gG+vdidn8xIdVGy6xnQOYpm+ANqRpWO82Hws5ITy
8uDn/S2kjQnyh8Cz7jJLBiJUxz/ZWfUz56cQq3Bej46oJN6UKkhJ9ogAjUJAYjV1
7JIWxv6OC7Cg6xfHCGRa7F0=
-----END PRIVATE KEY-----

提示

  • 从浏览器导出证书:点击锁图标 > 证书 > 详细信息 > 导出。
  • 使用以下命令获取站点证书:openssl s_client -connect example.com:443
  • SAN(主题备用名称)列出所有有效的域名。
  • 根证书是自签名的(颁发者 = 主题)。
  • 使用以下命令检查证书链:openssl verify -CAfile ca.pem cert.pem

理解 证书解析器

X.509 证书是互联网信任的基础,支持 HTTPS 连接的 TLS/SSL 加密、代码签名、电子邮件安全(S/MIME)和 VPN 认证。证书将公钥绑定到身份(域名、组织或个人),而证书颁发机构(CA)通过数字签名证书来为这种绑定背书。

证书通常以 PEM 格式存储——Base64 编码的 DER 数据,包含在 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 标记之间。证书包含主题(证书标识的对象)、颁发者(签名者)、有效期(生效日期和过期日期)、主题的公钥以及控制用途的扩展。主题备用名称(SAN)扩展列出了证书涵盖的所有域名。

证书链通过将终端实体证书与受信任的根 CA 通过一个或多个中间 CA 连接起来建立信任。当浏览器连接到网站时,会验证链:服务器的证书由中间 CA 签名,中间 CA 由浏览器信任的根 CA 签名。链断裂——缺少中间证书或未知根证书——会导致常见的"您的连接不是私密连接"错误。

证书管理是常见的故障来源。过期证书会导致即时的服务中断。域名不匹配会触发浏览器警告。缺少中间证书在某些浏览器中可能正常工作(浏览器可能缓存或获取它们),但在其他浏览器和 API 客户端中会失败。使用 Let's Encrypt 和 certbot 等工具监控证书过期和自动续期对于可靠运营至关重要。

要检查证书何时过期,将 PEM 内容粘贴到此工具中并查看过期日期。在命令行中,对本地文件运行 openssl x509 -enddate -noout -in cert.pem,对远程服务器运行 openssl s_client -connect example.com:443 并通过管道传给 openssl x509 -noout -enddate。通过 certbot、cert-manager 或专用监控服务进行自动化监控,可以在过期前及时发出警报以防止故障。

根证书是自签名的(颁发者等于主题),预装在浏览器和操作系统中作为信任锚点。中间证书由根 CA 签名,用于签发终端实体证书。这种信任链保护了根密钥——如果中间证书被泄露,只需撤销该中间证书而不是根证书。服务器必须发送完整的链(终端实体证书加上所有中间证书),但不应包含根证书本身。

主题备用名称(SAN)列出了证书有效的所有域名和 IP 地址。单个证书可以使用 SAN 保护多个域名,如 example.com、www.example.com 和 api.example.com。现代浏览器使用 SAN 而不是通用名称(CN)字段进行域名验证。通配符证书(*.example.com)覆盖一级子域名,但不覆盖顶级域名本身。

在浏览器中正常工作但在 API 客户端中失败的证书,是一个常见的问题,通常由不完整的证书链引起。浏览器更宽容——有些会通过 AIA(授权信息访问)自动获取缺失的中间证书,或使用之前缓存的中间证书。API 客户端(如 curl、Node.js 和 Python 的 requests 库)通常要求服务器发送完整的链。确保你的服务器配置为发送终端实体证书加上所有中间证书,并使用 curl -v 或 openssl s_client 进行测试以验证链的完整性。

← 返回所有工具