什么是证书?X.509 结构
解析 SSL/TLS 证书中的各个字段
什么是证书?X.509 结构 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
X.509 证书将公钥与身份绑定在一起。它是 HTTPS、电子邮件加密和代码签名的基础。让我们解读每个字段。
证书解决什么问题
任何人都可以生成 RSA 密钥对。没有证书时,攻击者可能用自己的公钥替换 Google 的公钥。证书是由 CA 签名的证明,表明某个公钥属于特定实体。
X.509 证书字段
版本(v3)、序列号(每个 CA 唯一)、签发者(CA 身份)、有效期(Not Before/Not After)、主体(所有者身份)、主体公钥信息、扩展、签名算法、签名。
主体名称(DN)
可分辨名称使用 LDAP 风格的属性:
CN=example.com (Common Name)
O=Example Corp (Organization)
C=US (Country)
对于现代 TLS,主体备用名称(SAN)扩展承载实际的主机名。
主体备用名称(SAN)
SAN 会列出证书涵盖的所有主机名/IP:
DNS:example.com
DNS:www.example.com
DNS:*.api.example.com
浏览器自 2017 年起要求使用 SAN;验证主机名时会忽略 CN 字段。
有效期
Not Before:最早生效日期。Not After:到期日期。Let's Encrypt 颁发有效期为 90 天的证书,以强制定期续期(限制泄露造成的损害)。大多数商业 CA 提供有效期为 1 至 2 年的证书。
证书中的公钥
证书在 SubjectPublicKeyInfo 中包含主体的公钥:
- Algorithm: rsaEncryption or id-ecPublicKey
- Key: DER-encoded public key bytes
这是用于 TLS 密钥交换或签名验证的密钥。
使用 OpenSSL 读取证书
# Inspect certificate from HTTPS site:
openssl s_client -connect google.com:443 < /dev/null 2>/dev/null | openssl x509 -text -noout
# Or from file:
openssl x509 -in cert.pem -text -noout
DER 与 PEM 编码
DER:证书结构的二进制 ASN.1 编码。
PEM:用 Base64 编码的 DER,外层包裹 -----BEGIN CERTIFICATE----- 标头。
PEM 便于人类阅读,供 Web 服务器使用。DER 更紧凑,适合设备。
证书扩展 v3
主要扩展:
- 基本约束:isCA(true/false)和 pathLen
- 密钥用途:digitalSignature、keyEncipherment 等
- 扩展密钥用途:serverAuth、clientAuth、codeSigning
- 主体密钥标识符(SKI)和颁发机构密钥标识符(AKI)
通配符证书
通配符证书(*.example.com)涵盖所有一级子域名:api.example.com、www.example.com 等。它 NOT 涵盖更深层的子域名(deep.api.example.com)。
快速检查
X.509 v3 证书中的哪个字段包含 TLS 有效主机名列表?
回顾
您现在已经能够读取并理解 X.509 证书。接下来我们将学习证书颁发机构和信任链如何验证这些证书。
常见问题解答
「什么是证书?X.509 结构」课时是免费的吗?
是的 — 「什么是证书?X.509 结构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「什么是证书?X.509 结构」这节课中我会学到什么?
解析 SSL/TLS 证书中的各个字段 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「什么是证书?X.509 结构」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是证书?X.509 结构
- 证书颁发机构与信任链
- 证书撤销:CRL 与 OCSP
- 使用 OpenSSL 创建自签名证书