SSL 证书与 HTTPS 详解
IPAddress-Lookup.com ·
每当你访问一个网站,看到网址旁边有一个小挂锁图标,或者注意到网址以 https:// 开头而非 http:// 时,你其实正依赖着现代互联网上最重要的技术之一:SSL/TLS 加密及其背后的数字证书。 这些证书默默地保护着您的密码、信用卡号、私信以及浏览习惯,防止任何可能在您与服务器之间的网络上进行监听的人窃取这些信息。然而,尽管 SSL 证书和 HTTPS 如此基础,其工作原理对大多数人来说仍然是个谜。 本指南将揭开这一面纱,用通俗易懂的语言详细解释:SSL/TLS究竟是什么、加密机制如何运作、证书究竟能证明什么,以及您的浏览器如何决定是否信任某个网站。
SSL 和 TLS 的真实含义
SSL 是“安全套接层”(Secure Sockets Layer)的缩写,该协议最初由网景(Netscape)于 20 世纪 90 年代中期设计,旨在保障网页浏览器与服务器之间的通信安全。它所解决的问题表述简单却难以解决:早期的万维网(HTTP)将所有数据都以明文形式发送,任何人都能读取。 任何位于您与网站之间的第三方——无论是恶意Wi-Fi热点、互联网服务提供商,还是遭到入侵的路由器——都能读取甚至篡改往来数据。SSL通过加密技术为这些数据流量添加了一层保护,使其对窃听者而言变得毫无意义。
SSL 本身现已过时。SSL 2.0 和 SSL 3.0 被发现存在严重的安全漏洞,多年前已被淘汰。 如今真正保障网络安全的协议称为 TLS(传输层安全协议)。TLS 是 SSL 的直接继任者,当人们提到“SSL 证书”时,几乎总是指与 TLS 配合使用的证书。之所以沿用“SSL”这一名称,仅仅是因为它更为人所熟知。其演变历程如下:
- SSL 1.0 — 因存在安全缺陷而从未公开发布。
- SSL 2.0(1995 年)和 SSL 3.0(1996 年)—— 目前均已被弃用,且在所有环境中均已禁用。
- TLS 1.0(1999 年)——首个以 TLS 为名的版本;如今也已弃用。
- TLS 1.1(2006)——与 1.0 版本一同退役。
- TLS 1.2(2008 年)—— 目前仍被广泛使用,若配置得当则被视为安全。
- TLS 1.3(2018)——当前标准,速度更快,且去除了旧版中的弱加密算法。
TLS 1.3 经过了重大重构。它移除了数十种曾导致安全漏洞的过时加密算法选项,并简化了连接建立流程,从而使安全会话能够更快建立。现代浏览器会协商双方均支持的最高版本,实际上通常为 TLS 1.2 或 1.3。
SSL 证书的实际作用
SSL/TLS 证书执行两项截然不同的任务,理解这两者是相互独立的至关重要。 第一项是加密——对数据进行混淆处理,使其在传输过程中无法被读取。第二项是身份验证——证明您正在通信的服务器确实属于地址栏中显示的域名,而非截获了您连接的冒名顶替者。
如果仅进行加密而没有身份验证,将会非常危险。您可能与攻击者建立了完全加密的连接,而攻击者只是在转发您的流量,同时窃取所有数据。 证书通过将加密密钥与经过验证的身份绑定来解决这一问题。当您的浏览器接受证书时,它既确认了连接的私密性,也确认了对方确实是其声称的身份。这两项保障共同确保了网上银行、网购和登录操作的安全。
非对称加密与对称加密
要理解 HTTPS 的工作原理,你需要了解密码学中的两个概念,它们其实比听起来要简单得多。
对称加密使用一个共享的密钥来对数据进行加密和解密。它速度极快且效率极高,因此非常适合加密实际浏览会话中产生的大量数据。 但其弊端显而易见:双方必须使用相同的密钥,若通过不安全的网络传输该密钥,窃听者便可能截获它。
非对称加密通过使用一对匹配的密钥来解决密钥共享问题:一个任何人都能看到的公钥,以及一个由所有者保密私钥。 用公钥加密的数据只能用私钥解密,反之亦然。这使得两个陌生人能够通过开放信道达成秘密协议。然而,非对称加密速度较慢,因此不会用于整个通信过程。
HTTPS 结合了两种加密方式的优势。它在会话开始时短暂使用速度较慢的非对称加密来安全地建立共享密钥,随后在会话剩余时间内切换为速度较快的对称加密。这一协商过程被称为 TLS 握手。
HTTPS 的工作原理:TLS 握手流程详解
当您输入一个网址时,浏览器首先将域名解析为 IP 地址——这一过程与 DNS 的工作原理密切相关——然后向该服务器建立连接。在交换任何网页之前,会先进行 TLS 握手。以下是该过程的分步说明。
- ClientHello。您的浏览器发送第一条消息。其中列出了它支持的 TLS 版本、可用的密码套件(加密算法的组合),以及将用于密钥生成的随机值。可以将其理解为在说:“这就是我的身份,这就是我能使用的语言。”
- ServerHello。服务器从浏览器的列表中选择将要使用的 TLS 版本和密码套件,并发送自己的随机值作为回复。至此,双方已就通信规则达成一致。
- 证书。服务器出示其 SSL/TLS 证书,其中包含其公钥以及经证书颁发机构(CA)签名的身份信息。此时,您的浏览器会验证该证书是否有效、可信,以及是否确实为正在访问的域名签发。
- 密钥交换。双方利用证书中的公钥(或现代密钥协商算法,如椭圆曲线迪菲-赫尔曼算法),安全地推导出一个共享密钥。关键在于,即使有窃听者监视了所有消息,也无法推算出这个密钥,因为私钥从未离开过服务器。
- 会话密钥与握手完成。双方使用已交换的密钥材料和两个随机值,生成一组相同的对称会话密钥。双方各自发送一条用这些密钥加密的“握手完成”消息,以证明握手成功。从这一刻起,整个通信过程都将采用对称加密——快速、私密且防篡改。
所有这些通常在不到一秒的时间内完成。在 TLS 1.3 中,握手过程已缩短为单次往返,而回头客有时甚至能更快地恢复连接。最终结果是建立了一条安全的通道,您的实际 HTTPS 请求和响应将通过该通道传输。
证书颁发机构与信任链
证书的可信度取决于为其背书的实体。这一角色由证书颁发机构(CA)承担——这是您的浏览器和操作系统预先决定信任的组织。 当网站所有者申请证书时,CA 会先验证其对域名的控制权(有时还会验证其企业身份),然后使用 CA 自身的密钥对证书进行签名。您的浏览器所验证的正是这一签名。
信任以一条由三个环节组成的链条形式组织:
- 根证书。信任链的顶端。根证书预先安装在您的浏览器和操作系统的“信任存储库”中。其私钥在严格的安全措施下离线保管,因为一旦其中一个私钥遭到泄露,整个系统都将受到破坏。
- 中间证书。根证书不会直接签署网站证书,而是先签署一个或多个中间证书,由这些中间证书再签署实际的网站证书。这样既能隔离珍贵的根密钥,又可在中间证书遭到泄露时将其撤销,而不会影响根证书的安全。
- 叶证书。也称为终端实体证书,即安装在网站本身上的证书。它由中间证书进行签名。
当浏览器验证网站时,会沿此链条逐级验证:叶证书由中间证书签名,中间证书由另一个中间证书或根证书签名,而该根证书是浏览器已信任的。 如果每个环节都通过验证,且根证书位于信任存储中,则该证书会被接受。这被称为“证书链构建”,而“不被信任”错误的常见原因之一是服务器忘记发送其中间证书,导致证书链中断。
证书类型
并非所有证书都相同。它们的区别在于CA对申请人的验证严格程度,以及所涵盖的域名数量。下表总结了主要类型。
| 类型 | 验证级别 | 证明内容 | 典型用途 |
|---|---|---|---|
| DV(域名验证型) | 基础级——仅验证域名 | 请求者控制该域名 | 博客、个人网站、大多数现代网站 |
| OV(组织验证) | 中等 — 已验证组织身份 | 该域名归属于经过验证的组织 | 商业和企业网站 |
| EV(扩展验证) | 严格级 — 经过全面的法律审查 | 对法人实体的严格确认 | 银行、大型电商、高可信度服务 |
| 通配符 | 上述任意一种 | 保护域名及其所有子域名 | *.example.com 涵盖网店、博客、邮箱等 |
| 多域名(SAN/UCC) | 上述任意一项 | 通过一张证书保护多个独立域名 | 运营多个独立域名的组织 |
对普通用户而言,关键点在于:从加密角度来看,DV、OV 和 EV 证书并无区别。它们都能为您的数据提供同等强度的保护。 区别仅在于身份验证。过去,EV证书会在地址栏中显示绿色公司名称,但浏览器已基本取消了这一区别,因此如今大多数网站都使用价格低廉或免费的DV证书。
通配符证书和多域名证书
通配符证书使用星号覆盖主域名的所有子域名——例如,一张 *.example.com 的证书可同时保护 www.example.com、shop.example.com 和 login.example.com。 多域名证书(有时也称为 SAN 或 UCC 证书)则在单个证书中列出了多个完全不同的域名。这两种证书都能减少管理员需要管理的证书数量。
证书包含哪些内容
证书是一种结构化的文档,您可以查看其中的每个字段。最重要的字段包括:
- 主体(Subject)。证书签发对象的身份,主要是域名(通用名称)。
- 签发者(Issuer)。对证书进行签名并签发的证书颁发机构(CA)。
- 有效期。证书有效的起始日期(“不早于”)和截止日期(“不晚于”)。
- 主体替代名称(SAN)。证书所涵盖的域名完整列表。现代浏览器依赖 SAN 字段(而非旧式的“通用名称”),来匹配网站。
- 公钥。密钥对中的公钥部分,用于握手过程。
- 签名算法。CA 用于签名的加密方法,例如基于 RSA 或 ECDSA 的 SHA-256。
- 指纹。证书整体的唯一哈希值,有助于精确识别该证书。
- 序列号。由签发 CA 分配的唯一标识符。
当浏览器验证网站时,会检查当前日期是否在有效期内、SAN条目中是否有一个与域名匹配、签名是否完整,以及证书链是否指向受信任的根证书。
证书过期及有效期缩短的原因
每份证书都有到期日期,且有效期近年来已大幅缩短。曾经有效期长达数年的证书,如今上限已缩短至一年左右甚至更短,行业趋势正朝着以周为单位计算的更短有效期发展。这一趋势有其充分的理由。
较短的有效期可在私钥被盗时将损害控制在最小范围内——遭到入侵的证书会提前过期,从而缩短攻击者可利用的窗口期。此外,这还能确保过时的加密算法以及已被吊销或误发的证书能迅速从生态系统中淘汰。 相应的代价是,管理员必须更频繁地进行续期,这也正是自动化已成为必不可少而非可选之举的原因。
证书失效时会发生什么
如果验证的任何环节失败,浏览器会中断连接,并显示全屏警告而非小图标。常见的失败情况包括:
- 证书过期。当前日期已超过“有效至”日期。这是最常见的原因,通常意味着有人忘记了续期。
- 自签名证书。该证书由其自身的密钥而非受信任的 CA 签名,因此不存在信任链。这在内部测试中尚可接受,但浏览器会拒绝将其用于公共网站。
- 名称不匹配。您访问的域名未出现在证书的 SAN 列表中——例如,某个域名的证书被用于服务另一个域名。
- 不受信任的签发者。证书链追溯到的根证书不在您的信任存储中,通常是因为缺少中间证书或该 CA 未被识别。
- 证书已被吊销。证书颁发机构(CA)在证书到期前已将其吊销,通常是因为密钥泄露。
在上述每种情况下,浏览器都会显示“您的连接不安全”等警告,并默认阻止该页面。这些警告旨在保护您的安全:证书不匹配或不受信任可能是真实拦截攻击的征兆,因此在处理敏感数据的网站上,切勿随意点击忽略这些警告。
免费证书与自动续期
网络安全领域最重要的进展之一,便是免费、自动化的证书的出现。Let's Encrypt 是一家非营利性证书颁发机构(CA),它不仅免费提供域名验证(DV)证书,而且同样重要的是,通过一种名为 ACME(自动化证书管理环境)的协议,实现了证书管理的完全自动化。
借助 ACME,服务器可以验证对域名的控制权、申请证书、安装证书并在到期前进行续期——所有这些操作均无需人工干预。这正是证书有效期较短之所以实用的原因:每隔几个月自动续期的证书不会给运维带来任何困扰。 免费签发与自动化的结合,是 HTTPS 从一项小众功能转变为整个网络中近乎普遍的默认设置的主要原因。
如何检查网站的证书
您无需专用软件即可检查证书。 在任何现代浏览器中,您都可以点击地址栏中的挂锁图标,然后选择查看证书详细信息的选项,在那里您可以找到证书主体、签发者、有效期、SAN 列表和指纹。这是确认您访问的是真实网站并检查证书到期时间的快速方法。
若需更快速且更详细的查看——包括完整的证书链、签名算法以及距过期还剩多少天——您可以使用在线工具。 我们自有的 SSL 证书检查工具允许您输入任意域名,并立即查看其证书是否有效、是否正确链接到受信任的根证书,以及距离需要续期还有多少天。这是一种简单的方法,可以在即将过期的证书触发浏览器警告并影响访客之前及时发现问题。
常见问题
SSL 和 TLS 是一回事吗?
并不完全一样。SSL 是较早的协议,现已过时;而 TLS 是其现代继任者,也是当今网站实际采用的安全协议。不过,“SSL 证书”这一术语因沿用已久而根深蒂固,因此在日常使用中,“SSL”和“TLS”常被互换使用,尽管其底层技术实际上是 TLS。
挂锁图标是否意味着网站是安全的?
挂锁图标表示您与该网站的连接已加密,且证书对该域名有效。但这并不能保证网站本身诚信可靠或没有诈骗行为——即使是欺诈网站也能获得免费的 DV 证书。请将挂锁视为加密连接的标志,而非整体可信度的保证。
免费的 SSL 证书和付费证书一样安全吗?
是的,就加密强度而言。来自 Let's Encrypt 等证书颁发机构(CA)的免费 DV 证书,其加密强度与昂贵的证书完全相同。付费的 OV 和 EV 证书增加了对组织的额外身份验证,但并不会增强加密连接的安全性。
为什么我在某些网站上会收到证书警告?
证书警告通常出现在验证失败时——最常见的原因包括证书已过期、与域名不匹配、是自签名证书,或者其证书链指向了不可信的证书颁发机构。该警告是浏览器对您的保护措施,在处理密码或支付信息的网站上,若不了解警告出现的原因,切勿直接忽略该警告。
SSL证书的有效期有多长?
现代公共证书的有效期通常为一年或更短,且业界正稳步朝着大幅缩短有效期的方向发展。较短的有效期可降低密钥被盗的风险,并迫使过时的加密算法退出使用。通过 ACME 等协议进行的自动续期,使频繁续期变得轻而易举。
不通过浏览器访问网站,能否检查证书?
可以。借助在线工具,您无需手动检查挂锁图标,只需输入域名即可查看证书详情,包括签发机构、有效期、完整的信任链以及距到期还有多少天。这对于监控您自己的网站或在访问前验证域名非常方便。