0Pricing
Cyber Security Academy · 课时

证书验证

验证服务器身份

证书验证 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

为什么要验证证书

仅靠加密并不足够。如果您将与攻击者的连接加密,保护的就是错误的通信。

证书验证可确保您确实是在与预期的服务器通信。

客户端检查哪些内容

在握手期间,客户端会验证以下几项内容:

  • 证书链能够追溯到受信任的根证书。
  • 证书处于有效期内。
  • 证书未被撤销。
  • 主机名匹配。

主机名匹配

您连接的主机名必须与证书中的主体备用名称(SAN)条目匹配。

旧的通用名称(CN)字段已不再用于此目的;现代客户端要求使用 SAN。

openssl x509 -in cert.pem -noout -ext subjectAltName

有效期时间

每张证书都有生效时间和失效时间两个时间戳。在这个时间范围之外,证书会被拒绝。

openssl x509 -in cert.pem -noout -dates

信任链验证

客户端会从叶证书开始沿证书链向上追溯到其信任存储区中的根证书,并验证每个签名。

如果不存在通往受信任根证书的路径,即使证书看起来正确,验证也会失败。

撤销状态检查

客户端会使用OCSP或CRL检查证书是否曾被提前撤销。

许多浏览器依靠 OCSP 装订或经过筛选的撤销列表来加快检查速度。

密钥用法限制

证书会在密钥用法和扩展密钥用法扩展中声明允许的用途。

服务器证书必须包含 serverAuth;CA 证书必须设置 CA 标志。使用不当的证书会被拒绝。

证书固定

证书固定会在客户端中硬编码预期的证书或公钥,这在移动应用中很常见。

即使证书有效、由 CA 签名,但只要不是预期证书,也会被拒绝,从而防御恶意或已被攻破的 CA。

验证失败时

常见的证书验证错误包括:

  • NET::ERR_CERT_DATE_INVALID(已过期)
  • NET::ERR_CERT_COMMON_NAME_INVALID(主机名不匹配)
  • NET::ERR_CERT_AUTHORITY_INVALID(签发者不受信任)

跳过验证的危险

禁用证书验证(例如 curl -k 或 verify=False)会移除所有针对冒充的保护。

在生产代码中绝不能这样做,因为这会招致中间人攻击。

# DO NOT do this in production
curl -k https://example.com

从命令行验证

您可以针对在线服务器运行完整的验证检查。

openssl s_client -connect example.com:443 \
  -verify_hostname example.com -verify_return_error

快速检查

某位开发人员在生产环境中设置 verify=False 来消除证书错误。这会引入什么风险?

回顾

您已了解客户端如何执行证书验证。

  • 检查包括链信任、有效期时间、撤销状态和主机名(SAN)。
  • 证书固定可增加针对恶意 CA 的防御。
  • 绝不要在生产环境中禁用验证。

接下来,我们将了解针对 TLS 的常见攻击。

常见问题解答

「证书验证」课时是免费的吗?

是的 — 「证书验证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「证书验证」这节课中我会学到什么?

验证服务器身份 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「证书验证」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. TLS 握手
  2. 密码套件
  3. 证书验证
  4. 常见 TLS 攻击
← 返回 Cyber Security Academy