# TLS（传输层安全协议）是什么？定义、例子与常见误区

> TLS 是 IETF 制定的传输层安全协议，为 HTTPS 等网络连接提供加密、完整性保护和服务器身份认证，是 SSL 的继任者。

Source: https://ssl.sh/zh/glossary/tls/
Last updated: 2026-11-10

TLS（Transport Layer Security）是 [SSL](https://ssl.sh/zh/glossary/ssl/) 的继任协议，位于 TCP 与 HTTP、SMTP、IMAP 等应用协议之间；QUIC 也复用了 TLS 1.3 的握手。连接建立时先进行 [TLS 握手](https://ssl.sh/zh/glossary/tls-handshake/)：双方协商协议版本和密码套件，服务器用 X.509 证书证明身份，再各自推导出会话密钥，之后的应用数据都被加密并带完整性校验。目前在用的版本是 TLS 1.2（RFC 5246，2008 年）和 [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/)（RFC 8446，2018 年 8 月）。

## 为什么重要
在公共 Wi-Fi、运营商网络等不可信链路上，TLS 防止账号密码、Cookie、API Token 被窃听或篡改，证书认证则阻止攻击者冒充服务器。协议版本的选择直接影响安全：Chrome 84、Edge 84 和 Firefox 78 在 2020 年移除了 TLS 1.0/1.1，RFC 8996（2021 年 3 月）正式将其废弃。TLS 1.3 去掉了静态 RSA 密钥交换和非 AEAD 算法，所有连接都具备前向安全，完整握手也从两个往返减少到一个往返。配置服务器时，通常只需开启 TLS 1.2 和 TLS 1.3。

## 例子
检查服务器是否支持 TLS 1.3：

```bash
openssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null
```

如果支持，输出中会显示 TLSv1.3 和协商出的密码套件；握手失败则说明服务器只支持更低的版本。

## 常见误区
- **用了 TLS，别人就看不到我访问的是哪个网站。** 目标 IP 仍然可见，而且在未启用 ECH 时，主机名会以明文出现在 SNI 扩展中。
- **有 TLS 的网站就是可信的。** TLS 只证明你连上的是该域名证书的持有者，钓鱼网站同样可以申请证书。
- **TLS 1.2 已经不安全了。** 只启用 ECDHE 密钥交换和 AEAD 密码套件的 TLS 1.2 仍被广泛接受，真正要淘汰的是 1.0/1.1 和老旧算法。

## 相关术语

- [SSL](https://ssl.sh/zh/glossary/ssl/): SSL 是 Netscape 在上世纪 90 年代设计的加密传输协议，已被 TLS 完全取代，如今“SSL”多半只是 TLS 和证书的习惯叫法。
- [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/): TLS 1.3 是当前最新的传输层安全协议版本（2018 年的 RFC 8446，现行规范为 RFC 9846），完整握手只需一个往返，且只保留 AEAD 加密算法。
- [TLS 1.2](https://ssl.sh/zh/glossary/tls-1-2/): TLS 1.2 是 2008 年由 RFC 5246 定义的 TLS 版本，引入了基于 SHA-256 的密钥派生和 AES-GCM 等 AEAD 加密算法，至今仍被广泛使用。
- [TLS 握手](https://ssl.sh/zh/glossary/tls-handshake/): TLS 握手是 TLS 连接开始时的一组消息交换，客户端与服务器在其中协商协议版本和密码套件、验证服务器身份并派生会话密钥。
- [密码套件](https://ssl.sh/zh/glossary/cipher-suite/): 密码套件是 TLS 客户端和服务器协商使用的一组命名的加密算法组合，例如 TLS_AES_128_GCM_SHA256，决定连接用什么算法保护数据。
- [HTTPS](https://ssl.sh/zh/glossary/https/): HTTPS 是在 TLS 加密连接之上传输的 HTTP，默认使用 443 端口，使网页内容、Cookie 和表单数据被加密，并验证服务器身份。
- [前向保密](https://ssl.sh/zh/glossary/forward-secrecy/): 前向保密是密钥交换的一种安全属性：即使服务器的长期私钥日后泄露，过去连接的会话密钥也不会因此暴露。
