HTTP 定义客户端与服务器如何交换请求和响应;HTTP 本身不加密传输内容,也不验证对端身份。HTTPS 是在 HTTP 通信中使用 TLS 建立安全通道,提供数据机密性、完整性保护和服务端身份验证。常见默认端口分别是 HTTP 的 80 与 HTTPS 的 443,但端口只是约定,部署可以使用其他端口。
访问 HTTPS 网站时,浏览器先建立传输连接,再与服务器进行 TLS 握手。双方协商协议参数和密钥材料;服务器提供证书,客户端检查证书链是否可信、有效期是否合适以及证书名称是否匹配目标域名。握手成功后双方得到会话密钥,后续 HTTP 请求和响应通过对称加密保护,并附带完整性校验。TLS 版本和握手选项会影响具体消息流程。
证书不是把网页内容加密的文件。它把域名身份与公钥绑定,帮助客户端确认握手对端持有相应私钥。非对称密码主要参与身份验证或密钥协商,后续大量数据通常用高效的对称算法加密。HTTPS 保护的是客户端到所连接 TLS 端点之间的链路;若中间有 TLS 终止代理,代理到后端的那段链路需另行保护。
HTTPS 不能证明网站经营者可信,也不能阻止服务端自身泄露数据、应用漏洞或钓鱼页面。证书错误时不应习惯性关闭校验;应检查系统时间、证书过期、域名是否匹配、证书链是否完整及客户端信任配置。部署还需管理证书续期、密钥权限和 TLS 配置。
常见追问
HTTPS 是否意味着数据端到端加密到最终应用?
加密范围取决于 TLS 终止位置。若负载均衡或反向代理解密 HTTPS,代理到应用服务器之间可能是明文或另一条 TLS 连接,需要单独设计。
HTTPS 能防止中间人攻击吗?
在客户端正确验证证书、密钥未泄露且信任链安全的前提下,TLS 能防止网络中间人冒充目标服务器或篡改链路数据。忽略证书警告会削弱这层保护。
HTTPS 为什么也需要非对称和对称密码?
非对称密码用于身份认证和建立共享密钥等握手工作;对称密码适合高效保护后续大量业务数据。它们在 TLS 中承担不同角色。
有 HTTPS 锁标志就说明网站安全可靠吗?
不说明。它表示浏览器认为当前连接的 TLS 校验通过,不代表网站内容无害、业务逻辑安全或经营主体可信。