引入

HTTP 可以传输数据,但明文传输会让中间链路看到甚至修改内容。登录密码、Cookie 和接口数据一旦经过不可信网络,就需要额外的安全层保护,这就是 HTTPS 要解决的问题。

正文

定义

HTTPS 是运行在 TLS 之上的 HTTP。它通过加密保护内容,通过证书验证服务器身份,并通过完整性校验发现传输过程中的篡改。

HTTPS 解决什么问题

目标解决的问题主要机制
机密性防止第三方直接读取内容对称加密
身份认证确认连接的是目标服务器数字证书与证书链
完整性发现数据被中途修改消息认证与校验

建立连接的大致过程

  1. 客户端连接服务器,并发起 TLS 握手。
  2. 服务器返回证书,客户端校验证书域名、有效期和信任链。
  3. 双方协商加密算法,并建立会话密钥。
  4. 后续 HTTP 数据使用会话密钥加密传输。

非对称加密主要用于身份验证和安全协商,对称加密主要用于实际数据传输。这样可以兼顾安全性和性能。

前端开发中的注意点

  • 页面使用 HTTPS 时,通常不能直接请求 HTTP 资源,否则可能触发混合内容阻止。
  • Secure Cookie 只会在 HTTPS 请求中发送。
  • HTTPS 不能阻止服务端代码泄露数据,也不能替代权限校验。
  • 证书有效不等于业务接口安全,仍需正确处理认证、授权和输入校验。

引出

HTTPS 保护的是传输链路,而不是所有应用层风险。继续排查网络问题时,可以在浏览器 Network 面板中分别观察 TLS 连接、请求头、响应头和 状态码,避免把证书问题和接口业务错误混在一起。