SSL/TLS 解析:从握手到云 ☁️

发布: (2025年12月25日 GMT+8 00:40)
10 min read
原文: Dev.to

Source: Dev.to

SSL/TLS 解析:从握手到云端的封面图 ☁️

Rohan Nalawade

介绍

你是否曾注意到浏览器地址栏旁边那个小锁图标?我们每天都能看到它,但直到最近,我才真正了解它背后到底发生了什么“魔法”。

我目前正踏上学习云计算的旅程。在浏览教程时,我不断碰到 SSLTLS握手 等术语。说实话,起初这些概念让人有点不知所措。为了真正弄懂它们,我花时间观看了 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 的对话。这在任何数据交换之前的毫秒级时间内完成。

简化的握手步骤

  1. Client Hello – 您的浏览器说:“你好!我想进行安全通信。这是我支持的加密方式。”
  2. Server Hello – 服务器回复:“你好!我们使用这种加密方式。这是我的证书,用来证明我的身份。”
  3. Verification – 浏览器检查证书(有效性、是否过期、域名匹配等)。
  4. Key Exchange – 如果证书有效,浏览器和服务器使用它生成一个 session key(会话密钥)。
  5. Secure Connection – 完成!它们锁定连接。从此以后,所有发送的数据都使用该会话密钥加密。

加密:非对称 vs. 对称

HTTPS 使用两种加密方式来平衡安全性和速度。

非对称加密(握手)

  • 使用 public key(公开密钥,所有人可见)和 private key(私有密钥,保密)。
  • 类比:一个邮箱。任何人都可以投信(使用 public key 加密),但只有拥有钥匙的所有者才能打开邮箱(使用 private key 解密)。
  • 仅在握手期间使用,以安全地交换会话密钥(session key)。

对称加密(会话)

  • 使用浏览器和服务器共享的 single key(单一密钥)。
  • 比非对称加密快得多,使您能够流式传输视频或加载大型页面而不会卡顿。
  • 握手完成后,连接切换为对称加密进行实际的数据传输。

什么是 SSL 证书?

证书就像网站的数字身份证(护照)。它有两个作用:

  1. 加密 – 它包含握手所需的公钥。
  2. 身份 – 它证明服务器拥有该域名。

证书由 证书颁发机构(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 的世界,如果你有任何帮助你更好理解安全的技巧或资源,请在评论中分享。让我们一起学习!

Back to Blog

相关文章

阅读更多 »

日本最佳LEED顾问

概述 日本的建筑市场是全球技术最先进的市场之一,拥有严格的国家能源效率标准和抗震性能要求……

Meta-DAG:用 AI 构建 AI 治理

我在凌晨2点所构建的东西 我意识到,关于AI最危险的并不是恶意——而是它在你最脆弱时永远不会拒绝你。那一刻……