管理

HTTP和HTTPS的区别:小锁图标能保证什么、不能保证什么

本文在AI辅助下由原文翻译而成。请结合原文核对专业术语和公式。

HTTPS就是把普通的HTTP放进加密的TLS连接里传输。它对这条连接做出三项保证:网络上的旁观者读不到你收发的内容,内容一旦被改动就会被发现,服务器还要证明自己持有地址栏所示域名的有效证书。但它并不保证网站本身诚实可信。小锁图标(或Chrome新版的调节图标)描述的是连接,而不是网站背后的人,况且几乎所有钓鱼网站也在用HTTPS。

左右对照图。使用HTTP(http://,端口80)时,含有明文密码的登录请求从浏览器发往网站,Wi-Fi、路由器或运营商线路上的人可以读取网页和密码、在不被发现的情况下篡改网页,还能冒充该网站。使用HTTPS(https://,端口443)时,同样的请求以加密字节的形式在隧道中传输,旁观者只能看到域名、IP地址和数据量的多少。
图1. 使用HTTP时,网络路径上的任何人都能读取并改动传输的内容;使用HTTPS时,他们仍能看到数据发往哪里、发了多少,却看不到内容。图中的登录信息为示例数据。

HTTP和HTTPS的区别:多出来的“S”是什么

HTTP是浏览器与服务器请求、传送网页的方式,自身以明文传输。HTTPS则把同样的请求和响应放进TLS(传输层安全协议)里发送。TLS是更早的SSL协议的后继者,所以大家至今仍说“SSL证书”,严格说是TLS服务器证书。SSL 3.0在2015年被正式弃用,TLS 1.0和1.1在2021年跟进,如今实际在用的是TLS 1.2和1.3。

对比项HTTPHTTPS
网址开头http://https://
默认端口80443
网络上传输的内容路径上的任何人都能读已加密
传输中被篡改不会被发现会被发现,连接随即中断
服务器身份核验没有必须持有该域名的有效证书
Chrome地址栏“不安全”中性的调节图标

TLS 1.3的规范(RFC 8446)明确了安全通道的三项性质:

  • 机密性:连接建立后,只有浏览器和服务器能读到数据,包括域名之后的页面路径、表单字段、密码和Cookie。
  • 完整性:数据在途中一旦被改动就会被察觉,所以咖啡馆的路由器没法悄悄往网页里塞广告或恶意软件。
  • 身份认证:服务器总要用证书证明自己的身份;浏览器一方通常不需要。

还有两点局限。TLS不会隐藏你发送的数据量,域名通常也依然可见:设备会通过DNS查询域名,握手的第一条消息里也写明了要访问的网站。加密DNS和较新的Encrypted Client Hello(ECH)扩展可以把域名遮住,但前提是双方都支持。

HTTPS连接是怎样建立的:一次TLS握手

请求网页之前,浏览器和服务器会先做一次TLS握手,TLS 1.3下只需一个往返:

  1. ClientHello。浏览器说明要访问哪个网站,列出自己支持的TLS版本和加密算法,并发出自己这一半的密钥共享值。
  2. ServerHello。服务器选定参数,并回送它那一半。此时双方各自算出相同的会话密钥,密钥本身从不经过网络,此后的内容全部加密。
  3. 证书与签名。服务器发来证书,并用对应的私钥为握手过程签名,证明自己真的持有私钥,而不是拿了一份复制来的证书。
  4. 浏览器检查。证书必须能追溯到浏览器或系统信任的证书颁发机构(CA),所列域名要与你访问的一致,且在有效期内。
  5. 加密的HTTP。双方确认握手过程未被改动,之后的请求和响应都走加密通道。
简化的TLS 1.3握手时序图,参与方是浏览器和Web服务器:1. ClientHello,携带网站名、TLS版本和密钥共享值;2. ServerHello,携带服务器的密钥共享值,此后双方各自算出相同的会话密钥;3. 已加密的Certificate、签名和Finished;4. 浏览器检查证书是否来自受信任的CA、域名是否一致、是否未过期,否则Chrome会显示“您的连接不是私密连接”;5. 双向传输加密的HTTP。
图2. 简化的TLS 1.3握手流程。第4步的证书检查正是拦住冒充服务器的关键;会话密钥由两端各自算出,从不在网络上传输。

如果第4步没通过,浏览器会中止连接并弹出整页警告,例如Chrome的“您的连接不是私密连接”。这是HTTPS拦下了可能的冒充者,不是点掉就算的小故障。

小锁图标不能告诉你什么

证书证明的是谁控制着一个域名,而不是谁在经营这家企业,更不是对方是否诚实。最基础的是域名验证型(DV)证书:证书颁发机构只检查申请人是否控制该域名,例如要求对方发布指定的文件或DNS记录。Let’s Encrypt是免费、自动化的证书颁发机构,只签发DV证书,默认有效期90天。这推动了HTTPS的普及,但也意味着:架在yourbank.com.verify-login.net这类地址上的钓鱼页面,照样能拿到有效的证书。浏览器会如实报告“连接安全”,只不过连上的是错误的网站。(虚构示例)

两栏清单。关于连接,能保证:传输过程保密、完整性,以及对所显示域名的服务器身份认证。关于网站,不能保证:确实是你想访问的网站、网站所有者诚实可信、数据到达后依然安全、下载的文件没有问题、访问行为不可见(域名和IP地址依然可见)。
图3. HTTPS保护的是浏览器与服务器之间的这条“管道”。至于服务器背后的人是否值得信任,则是另一个问题。
证书类型证书颁发机构检查什么这对你意味着什么
DV(域名验证型)申请人是否控制该域名只说明服务器被授权使用该域名
OV(组织验证型)域名控制权,外加组织的注册信息证书详情中有公司名称
EV(扩展验证型)对组织法律身份的更严格审查与OV相同;Chrome 77(2019年)起公司名称标识已移出地址栏

HTTPS也不扫描下载文件里的恶意软件,不保护已存入服务器的数据,也帮不了已被入侵的设备。

Chrome为什么把小锁换成了调节图标

小锁诞生时,HTTPS还很少见。据Google介绍,2013年排名前一百万的网站中只有14%支持HTTPS,到2023年,Windows版Chrome加载的页面超过95%使用HTTPS。Google在2021年的研究还发现,只有11%的参与者正确理解了小锁的含义,不少人把它当成“网站值得信任”。几乎所有钓鱼网站都挂着同样的小锁,这种误解很危险;美国联邦调查局(FBI)早在2019年就警告过,不要因为有小锁或有“https”就信任网站。

2023年9月发布的Chrome 117把小锁换成了中性的调节图标(两条滑块),点开可查看网站信息和设置。纯HTTP页面仍标为“不安全”,自2018年7月的Chrome 68起就是如此。2025年10月,Google宣布了下一步:计划在Chrome 154中默认开启“一律使用安全连接”设置,这样Chrome在打开没有HTTPS的公共网站前会先征求你的同意。

Chrome安全标识时间线:2013年,排名前100万的网站中有14%支持HTTPS;2018年7月,Chrome 68将所有HTTP页面标为“不安全”;2021年,在Chrome的一项研究中只有11%的参与者理解小锁的含义;2023年9月,Chrome 117用中性的调节图标取代小锁;2025年10月,Google宣布计划在打开公共HTTP网站前先征求用户同意。到2023年,Windows版Chrome加载的页面中超过95%使用HTTPS。
图4. 随着HTTPS成为常态,Chrome地址栏的提示也在变化:对纯HTTP发出警告,不再把HTTPS当作可信的标志。数据来自Google关于Chrome的公告。

输入密码或银行卡号前的检查清单

  1. 读懂真正的域名。找到网址里第一个单斜杠(/)之前的那一段,从右往左读:在yourbank.com.verify-login.net中,网站实际是verify-login.net,而不是yourbank.com。
  2. 走正路进入。自己输入网址或用书签,别点邮件、短信或二维码里的链接。
  3. 遇到证书警告不要强行继续。在需要登录或付款的网站上,直接关掉标签页。
  4. 让密码管理器或通行密钥替你核对域名。它们只在保存凭据的那个网站上提供账号信息,仿冒页面什么也拿不到。
  5. 把“不安全”当作停止信号。在HTTP页面上输入的任何内容都以明文传输,涉及敏感信息时不要继续。
  6. 别只盯着图标。突如其来的紧迫感、你没要求过的登录提示、便宜得离谱的价格,比地址栏里的符号更值得警惕。

常见问题

在公共Wi-Fi上,只要是HTTPS就够了吗?

HTTPS能让其他用户和热点运营者看不到通信内容,但仍能看到你访问了哪些域名。伪造的热点若读取HTTPS流量会触发证书警告,却可以把你引向外观相似的网站,所以依然要核对域名。

免费证书比收费证书更不安全吗?

就连接本身而言不是。加密强度取决于服务器使用的TLS版本和配置,而不是证书的价格。收费的OV、EV证书多了一层组织审核,但Chrome和Safari已不再在地址栏里突出显示。

公司或学校能看到我的HTTPS流量吗?

通常他们只能看到域名,看不到内容。不过在由他们管理的设备上,组织可以安装自己的根证书,通过安全网关检查HTTPS流量,且不会触发浏览器警告。在不归你控制的设备上,应假定可能被检查。

资料来源:IETF RFC 8446:TLS 1.3协议规范;Chromium博客:锁形图标的更新(2023);FBI IC3:钓鱼活动利用“安全”网站(2019);Let’s Encrypt常见问题。

相关阅读

为帮助理解本文而制作的原创插画。