当前位置:首页 > 行业动态 > 正文

https证书校验

HTTPS证书校验指客户端验证服务器证书的合法性,包括检查颁发机构可信性、证书有效期、域名匹配、证书链完整性及数字签名有效性

HTTPS证书校验核心逻辑

HTTPS证书校验是浏览器/客户端与服务器建立安全连接的关键步骤,主要验证服务器身份合法性、证书有效性及通信安全性,以下是校验的核心逻辑:

https证书校验  第1张

证书链验证

  • 目标:确认证书由受信任的根证书颁发机构(CA)签发。
  • 流程
    • 服务器返回证书链(含中间证书)。
    • 客户端逐级向上验证,直到根证书。
    • 若任一中间证书未被信任或缺失,则校验失败。

证书有效期检查

  • 规则
    • 当前时间必须在证书的Not BeforeNot After范围内。
    • 过期证书(如Not After早于当前时间)直接拒绝。

域名匹配验证

  • 规则
    • 证书的Common Name (CN)Subject Alternative Name (SAN)必须与访问的域名匹配。
    • 支持通配符证书(如.example.com),但需符合CA规范。

证书吊销状态检查

  • 方式
    • 在线OCSP:向CA的OCSP服务发送请求,实时查询证书是否被吊销。
    • CRL:下载并检查证书吊销列表(通常效率较低)。
  • 结果:若证书被吊销,则终止连接。

公钥加密验证

  • 目的:确保证书未被改动。
  • 流程
    • 使用证书中的公钥解密数字签名,验证签名内容是否与证书哈希值一致。
    • 若验证失败,说明证书被改动或伪造。

常见校验失败场景与解决方案

失败原因 现象 解决方案
证书过期 浏览器提示“证书已过期” 更新或续订证书,确保系统时间准确
域名不匹配 提示“NET::ERR_CERT_COMMON_NAME_INVALID” 申请包含正确域名的证书,或配置SNI(服务器名称指示)
自签名证书 浏览器警告“不受信任” 使用受信任的CA签发证书,或手动将自签名证书添加到信任列表(仅限内部测试)
证书链不完整 无法验证上级证书 检查服务器配置,确保中间证书和根证书完整
OCSP响应超时/失败 提示“无法验证证书” 启用备用吊销检查(如CRL),或检查网络连通性

扩展知识:OCSP vs CRL

特性 OCSP CRL
更新频率 实时查询 定期发布(通常每日或每周)
性能 低延迟,单个请求 高延迟,需下载完整列表
带宽消耗 小(仅请求单个证书状态) 大(下载整个列表)
兼容性 依赖网络连通性 离线可使用本地缓存的CRL

相关问题与解答

问题1:为什么自签名证书不被浏览器信任?

解答
自签名证书没有经过权威CA的签名,浏览器默认不信任其根证书,若需使用自签名证书(如内部测试环境),需手动将证书导入浏览器的“受信任根证书”列表,或在客户端配置中明确信任该证书。

问题2:HTTPS证书与代码仓库(如Git/SVN)的HTTPS访问有什么关系?

解答
代码仓库通过HTTPS传输时,同样需要验证服务器证书,若仓库服务器使用自签名证书或证书配置错误,客户端(如Git)会提示证书错误并拒绝连接,此时需确保仓库服务器配置有效证书,或在客户端配置中忽略证书校验(存在安全

0