SSL/TLS 解析:从握手到云 ☁️
Source: Dev.to

介绍
你是否曾注意到浏览器地址栏旁边那个小锁图标?我们每天都能看到它,但直到最近,我才真正了解它背后到底发生了什么“魔法”。
我目前正踏上学习云计算的旅程。在浏览教程时,我不断碰到 SSL、TLS 和 握手 等术语。说实话,起初这些概念让人有点不知所措。为了真正弄懂它们,我花时间观看了 YouTube 教程,并与 Gemini 交流,将复杂的技术术语拆解成通俗的英文。
现在我终于弄明白了,我想把学到的东西记录下来。本文就是我尝试以最简洁的方式向学习者解释 SSL 和 TLS——从学习者的角度,为学习者而写。
字母汤:HTTP vs. HTTPS
首先,让我们先弄清基本概念。
- HTTP(HyperText Transfer Protocol) – 浏览器和服务器之间的标准通信方式。问题是什么?它是明文的。如果你通过 HTTP 发送密码,任何在网络上窃听的人(比如咖啡店里的黑客)都能像阅读明信片一样轻易读取。
- HTTPS(HTTP Secure) – 在 HTTP 之上加了一层 安全层。它会加密数据,即使有人窃取,也只能看到乱码。
但那层 安全层 到底是什么?这就是 SSL 和 TLS 出场的地方。
SSL vs. TLS:有什么区别?
您会看到这些术语被交替使用,但它们在技术上是有区别的。
- SSL (Secure Sockets Layer) – 由 Netscape 在 90 年代开发的原始协议。现在已被弃用,且被认为不安全。
- TLS (Transport Layer Security) – 现代且安全的 SSL 继任者。
趣味事实: 我们今天主要使用 TLS 1.2 或 TLS 1.3。不过,人们仍然习惯说“SSL 证书”。这就像说“拨号”一样,尽管我们已经不再使用旋转拨号盘了。
工作原理:“握手”
当您访问安全网站(如 Google 或您的银行)时,浏览器和服务器会进行一次称为 TLS Handshake 的对话。这在任何数据交换之前的毫秒级时间内完成。
简化的握手步骤
- Client Hello – 您的浏览器说:“你好!我想进行安全通信。这是我支持的加密方式。”
- Server Hello – 服务器回复:“你好!我们使用这种加密方式。这是我的证书,用来证明我的身份。”
- Verification – 浏览器检查证书(有效性、是否过期、域名匹配等)。
- Key Exchange – 如果证书有效,浏览器和服务器使用它生成一个 session key(会话密钥)。
- Secure Connection – 完成!它们锁定连接。从此以后,所有发送的数据都使用该会话密钥加密。
加密:非对称 vs. 对称
HTTPS 使用两种加密方式来平衡安全性和速度。
非对称加密(握手)
- 使用 public key(公开密钥,所有人可见)和 private key(私有密钥,保密)。
- 类比:一个邮箱。任何人都可以投信(使用 public key 加密),但只有拥有钥匙的所有者才能打开邮箱(使用 private key 解密)。
- 仅在握手期间使用,以安全地交换会话密钥(session key)。
对称加密(会话)
- 使用浏览器和服务器共享的 single key(单一密钥)。
- 比非对称加密快得多,使您能够流式传输视频或加载大型页面而不会卡顿。
- 握手完成后,连接切换为对称加密进行实际的数据传输。
什么是 SSL 证书?
证书就像网站的数字身份证(护照)。它有两个作用:
- 加密 – 它包含握手所需的公钥。
- 身份 – 它证明服务器拥有该域名。
证书由 证书颁发机构(CAs) 颁发——这些受信任的组织会验证网站所有者。如果你自己创建证书(自签名),浏览器会警告用户该站点“非安全”,因为没有受信任的第三方对你进行验证。
SSL/TLS 在云时代
如果你将应用部署到云端(AWS、Vercel、Google Cloud 等),几乎不再需要在服务器上手动处理证书。云计算带来了两个关键概念:SSL 终止 和 托管证书。
SSL 终止(保镖)
解密数据会消耗 CPU 资源。如果你的网站拥有数百万访客,应用服务器可能会因为不断进行“握手”而不堪重负。
解决方案: 使用 负载均衡器。
- 负载均衡器位于你的服务器前端。
- 它负责 SSL/TLS 握手并完成数据解密。
- 然后把解密后的数据以普通 HTTP 形式转发给实际的应用服务器。
这就是 SSL 终止。它就像俱乐部门口的保镖检查身份证(安全),让调酒师(你的服务器)只专注于倒酒(提供内容)。
托管证书(不再慌张)
在过去,你必须购买证书、上传到服务器,并设定日历提醒每 365 天续签一次。如果忘记,站点就会宕机。
现代云服务商(AWS Certificate Manager、Vercel、Google Cloud 等)提供 托管证书:
- 通常免费。
- 在证书到期前自动续签。
- 与服务商的负载均衡器或 CDN 深度集成,几乎不需要你手动触碰证书文件。
TL;DR
- HTTP = 纯文本。HTTPS = HTTP + 加密(SSL/TLS)。
- SSL 是旧的、不安全的协议;TLS 是现代的替代方案。
- TLS 握手 建立信任并创建会话密钥。
- 非对称加密 用于保护握手;对称加密 用于实际的数据传输。
- SSL/TLS 证书 证明站点身份并提供公钥。
- 在云环境中,让 负载均衡器 处理握手(SSL 终止),并使用 托管证书 以避免手动续订。
现在你已经掌握了基础——可以自由探索更深入的主题,如密码套件、OCSP 装订、TLS 上的 HTTP/2,以及零信任网络! 🚀
嘿,expire.
- 你不需要触碰任何私钥;云提供商会为你处理安全。
端到端加密(零信任)
等等,我不是刚说负载均衡器会把明文 HTTP 发送到服务器吗?这安全么?
通常是安全的,因为这些流量发生在私有的安全云网络(VPC)内部,外部无法访问。
然而,对于高度敏感的数据(如银行或医疗保健),我们使用 端到端加密。
- 负载均衡器解密流量以进行检查。
- 在发送到后端服务器之前重新加密。
- 你的服务器再次解密。这确保即使黑客进入你的私有云网络,也无法读取内部流量。
结论
理解 SSL/TLS 对任何开发者来说都至关重要。它确保了互联网在商业、通信和隐私方面保持安全。
无论你是使用 Let’s Encrypt 配置本地服务器,还是在 AWS 上搭建企业级负载均衡器,核心概念都是相同的:
加密 = 信任
如果你今天在构建网站,HTTPS 已不是可选项——它是标准配置。随着现代工具让证书免费且自动续期,已经没有理由再使用普通的 HTTP 了。
希望这能消除你对这些缩写的困惑,并让你对云安全的工作原理有一点了解!
我仍在探索云计算和 DevOps 的世界,如果你有任何帮助你更好理解安全的技巧或资源,请在评论中分享。让我们一起学习!
