X.509证书结构详解:看懂证书里的每个字段

a
admin
作者
2026-07-27
发布日期
约 18 分钟
阅读时间

最近有朋友问:证书文件里那一长串Base64编码到底装的是什么?证书的字段都代表什么意思?部署证书时怎么检查证书是否正确?这篇就把X.509证书结构详细讲一下,帮你真正看懂证书。

什么是X.509

X.509 是公钥证书的国际标准格式(RFC 5280),定义了证书的内部结构。所有SSL/TLS证书都遵循X.509标准

X.509的发展历史

  • X.509 v1(1988年):基础版本
  • X.509 v2(1993年):增加唯一标识符
  • X.509 v3(2008年):增加扩展字段(当前主流版本)

现在用的都是X.509 v3,支持丰富的扩展字段。

证书的整体结构

一个X.509证书包含两大部分:

  1. Certificate(证书本体):可见的证书信息
  2. Signature Algorithm + Signature Value:CA的签名

Certificate部分又包含:

  • Version:版本号
  • Serial Number:序列号
  • Signature Algorithm:签名算法
  • Issuer:颁发者
  • Validity:有效期
  • Subject:使用者
  • Subject Public Key Info:公钥信息
  • Extensions:扩展字段

用OpenSSL查看证书

查看证书完整内容

openssl x509 -in cert.pem -text -noout

输出类似:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1234567890 (0x499602d2)
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=ZeroSSL ECC Domain Secure Site CA, O=ZeroSSL, C=AT
        Validity
            Not Before: Jan  1 00:00:00 2026 GMT
            Not After : Mar 31 23:59:59 2026 GMT
        Subject: CN=example.com
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub: 04:5a:3b:8e:...
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Alternative Name:
                DNS:example.com, DNS:www.example.com
            X509v3 Authority Key Identifier:
                keyid:A8:4A:6A:63:A4:5B...
            X509v3 Subject Key Identifier:
                A8:4A:6A:63:A4:5B...
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:20:34:8b:...

用在线工具查看:把证书内容粘贴到 证书查看工具,自动解析显示所有字段。

Version(版本号)

字段:证书的X.509版本

取值

  • 0 = v1
  • 1 = v2
  • 2 = v3(现代证书都是这个)

作用:决定证书支持哪些字段。v3支持扩展字段,是当前主流。

Serial Number(序列号)

字段:CA给每个证书分配的唯一编号

特点

  • 每个CA内部唯一
  • 用于撤销时定位证书
  • 长度通常20字节(160位)
  • 十进制或十六进制显示

作用

  • 证书撤销(CRL/OCSP)用序列号定位
  • CA内部审计追踪

查看序列号

openssl x509 -in cert.pem -serial -noout
# 输出 serial=499602D2

Signature Algorithm(签名算法)

字段:CA用什么算法给证书签名

常见取值

  • sha256WithRSAEncryption:RSA签名+SHA256哈希
  • ecdsa-with-SHA256:ECDSA签名+SHA256
  • sha384WithRSAEncryption:RSA签名+SHA384
  • ed25519:Ed25519签名

作用:验证证书签名时使用对应算法。

Issuer(颁发者)

字段:谁签发的这个证书

包含子字段

  • CN(Common Name):CA名称
  • O(Organization):组织名
  • C(Country):国家代码

示例

Issuer: CN=ZeroSSL ECC Domain Secure Site CA, O=ZeroSSL, C=AT

作用:标识证书的签发者,用于追溯证书链。

Validity(有效期)

字段:证书的有效时间范围

包含

  • Not Before:生效时间
  • Not After:失效时间

示例

Validity
    Not Before: Jan  1 00:00:00 2026 GMT
    Not After : Mar 31 23:59:59 2026 GMT

重要

  • 证书过期后浏览器会报警告
  • 免费证书有效期90天,付费证书1-2年
  • 续费要在过期前30天进行

证书查看工具 可以查看证书剩余天数。

Subject(使用者)

字段:证书的所有者信息

DV证书的Subject很简单

Subject: CN=example.com

OV/EV证书的Subject更丰富

Subject: CN=example.com, O=Example Inc, OU=IT Department, 
         L=Beijing, ST=Beijing, C=CN, 
         businessCategory=Private Organization,
         serialNumber=1234567890

子字段含义

  • CN(Common Name):主域名
  • O(Organization):组织名
  • OU(Organizational Unit):部门
  • L(Locality):城市
  • ST(State/Province):省/州
  • C(Country):国家
  • emailAddress:邮箱

现代证书的CN:现代浏览器不再看CN字段,而是看SAN扩展。CN字段保留只是为了兼容老设备。

Subject Public Key Info(公钥信息)

字段:证书包含的公钥

包含

  • Public Key Algorithm:公钥算法
  • Public Key:公钥内容

示例

Subject Public Key Info:
    Public Key Algorithm: id-ecPublicKey
        Public-Key: (256 bit)
        pub: 04:5a:3b:8e:...

常见算法

  • rsaEncryption:RSA公钥
  • id-ecPublicKey:EC公钥
  • id-Ed25519:Ed25519公钥

Extensions(扩展字段)

最重要的部分,X.509 v3的核心特性。

Key Usage(密钥用法)

字段:公钥的用途

常见值

  • Digital Signature:数字签名
  • Key Encipherment:密钥加密
  • Data Encipherment:数据加密
  • Key Agreement:密钥协商

SSL证书通常包含Digital Signature, Key Encipherment

Extended Key Usage(扩展密钥用法)

字段:公钥的具体应用场景

常见值

  • TLS Web Server Authentication:Web服务器认证
  • TLS Web Client Authentication:Web客户端认证
  • Code Signing:代码签名
  • Email Protection:邮件保护

SSL证书包含TLS Web Server Authentication, TLS Web Client Authentication

Subject Alternative Name(SAN,使用者可选名称)

字段:证书覆盖的所有域名/IP

最重要的扩展字段之一。现代浏览器只看SAN,不看CN。

示例

X509v3 Subject Alternative Name:
    DNS:example.com, DNS:www.example.com, DNS:*.example.com

类型

  • DNS:域名
  • IP Address:IP地址
  • email:邮箱
  • URI:统一资源标识符

证书查看工具 查看证书的SAN列表,确认覆盖的域名是否符合预期。

Basic Constraints(基本约束)

字段:证书是否是CA证书

  • CA:TRUE:是CA证书(可以签发其他证书)
  • CA:FALSE:不是CA证书(终端证书)

SSL证书应该是 CA:FALSE,否则是配置错误。

Authority Key Identifier(颁发者密钥标识)

字段:签发此证书的CA的公钥标识

作用:构建证书链时用于匹配中间证书。

Subject Key Identifier(使用者密钥标识)

字段:本证书的公钥标识

作用:被签发的证书的AKI匹配本证书的SKI。

CRL Distribution Points(CRL分发点)

字段:证书撤销列表(CRL)的查询URL

作用:浏览器或应用查询证书是否被撤销。

Authority Information Access(AIA,颁发者信息访问)

字段:CA信息访问点

包含

  • OCSP:OCSP查询URL(在线证书状态查询)
  • caIssuers:中间证书下载URL

作用:浏览器自动下载缺失的中间证书。

Certificate Policies(证书策略)

字段:证书的验证类型和策略

包含

  • Policy Identifier:策略OID
  • CPS:证书实践声明URL

作用:标识证书是DV、OV还是EV。

Signature(签名)

字段:CA对证书内容的数字签名

作用:验证证书是否被篡改。

验证过程

  1. 用CA的公钥解密签名
  2. 计算证书内容的哈希值
  3. 比对两个值,相同则证书有效

不同证书类型的X.509差异

字段 DV证书 OV证书 EV证书
Subject 只有CN 含O、OU 含完整企业信息
SAN 包含 包含 包含
Certificate Policies DV OID OV OID EV OID
验证时间 几分钟 1-3天 3-7天
浏览器显示 绿锁 绿锁 绿锁+公司名

证书指纹

证书指纹是证书内容的哈希值,用于唯一标识证书。

常见算法

  • SHA-1指纹:40个字符(已不推荐用于验证)
  • SHA-256指纹:64个字符(推荐)

查看指纹

# SHA-1
openssl x509 -in cert.pem -fingerprint -sha1 -noout

# SHA-256
openssl x509 -in cert.pem -fingerprint -sha256 -noout

作用

  • 对比证书是否相同
  • 证书透明度日志(CT log)查询
  • 证书撤销检查

实战:检查证书信息

部署证书前,先检查关键信息:

# 1. 查看证书有效期
openssl x509 -in cert.pem -dates -noout

# 2. 查看证书的Subject
openssl x509 -in cert.pem -subject -noout

# 3. 查看证书的Issuer
openssl x509 -in cert.pem -issuer -noout

# 4. 查看SAN域名列表
openssl x509 -in cert.pem -ext subjectAltName -noout

# 5. 查看完整信息
openssl x509 -in cert.pem -text -noout

或用在线工具证书查看工具 一键解析所有字段。

常见问题

Q:证书的CN字段和SAN有什么区别?

A:CN是主域名,SAN是所有覆盖的域名列表。现代浏览器只看SAN,CN保留是为了兼容。

Q:证书序列号有什么用?

A:用于撤销证书时定位。OCSP查询用序列号判断证书是否被撤销。

Q:怎么判断证书是DV还是OV?

A:看Subject字段。只有CN是DV,包含O、OU等企业信息是OV。或看Certificate Policies扩展的OID。

Q:证书指纹能修改吗?

A:不能。指纹是证书内容的哈希值,改了内容指纹就变,签名也会失效。

Q:证书可以修改内容吗?

A:不能。证书被CA签名,任何修改都会让签名失效,证书就作废了。

最后

X.509证书看着复杂,核心就这几部分

  • Subject + SAN:证书给谁用
  • Issuer:谁签发的
  • Validity:什么时候有效
  • Public Key:公钥内容
  • Extensions:扩展用法
  • Signature:CA签名

下次拿到证书,用 openssl x509 -text -noout证书查看工具 看看这些字段,就能判断证书是否符合需求。希望这篇能帮你真正看懂证书。

本文到此结束