为什么网站要用 HTTPS:加密原理与 TLS 握手入门

你访问任何一个银行、电商网站,地址栏都会出现一把小锁,地址以 https:// 开头。这把锁代表什么?HTTP 和 HTTPS 差一个字母,安全程度却天差地别。本文用生活中的比喻,把加密原理、TLS 握手和证书讲清楚。

一、HTTP 与 HTTPS 的区别

HTTP 是浏览器与服务器之间传输数据的协议,它本身不加密:你发出的密码、订单、身份证号,在网络上都是"明文"传输,任何经过的路由节点都能看到,就像把明信片直接丢进邮筒——邮差能读、中转站能读。

HTTPS = HTTP + TLS(传输层安全协议),在两者之间加了一层加密。HTTPS 与 HTTP 的对比:

对比项 HTTP HTTPS
传输内容 明文,可被偷看 加密,偷看也读不懂
默认端口 80 443
身份验证 无,无法确认对方身份 有证书,可验证服务器身份
被篡改 容易 极难
现代浏览器提示 标记为"不安全" 显示小锁

简单说,HTTPS 同时解决三件事:防偷看(加密)、防篡改(完整性)、防假冒(身份验证)

二、对称加密:同一把钥匙

对称加密是最直观的加密方式:发送方和接收方用同一把密钥加密和解密,就像两个人共用一把锁。

它的优点是快,适合加密大段数据;缺点是"钥匙怎么安全地交给对方"这个问题绕不开——如果通过网络传钥匙,钥匙本身可能被偷走,加密就形同虚设。这是个先有鸡还是先有蛋的问题。

三、非对称加密:信箱的投递口和钥匙

非对称加密用一对钥匙:公钥可以公开,私钥必须保密。用公钥加密的数据只有对应的私钥能解开。

打个比方:信箱有个公开的投递口(公钥),任何人都能把信塞进去;但取信要用只有你有的钥匙(私钥)。别人塞进来的信,只有你能打开。

非对称加密解决了"钥匙如何传递"的问题,但计算量大、速度慢,不适合加密大段数据。所以实际方案是两者结合。

四、TLS 握手(简化版):四步达成加密共识

TLS 握手的完整流程很复杂,但核心逻辑可以压缩成四步:

  1. 打招呼:浏览器向服务器发出"你好",并带上自己支持的加密算法列表和一份随机数;
  2. 亮证书:服务器把数字证书(包含公钥和身份信息)发回给浏览器;
  3. 验身份 + 换钥匙:浏览器验证证书由可信机构签发、域名匹配,然后生成一个随机数(后续对称加密的"会话密钥"),用服务器公钥加密后发回去;
  4. 开聊:服务器用私钥解开拿到会话密钥,双方确认后,之后的所有数据都用这把会话密钥做对称加密。

整个过程用户无感,通常在 100 毫秒左右完成。你只需要记住结论:握手之后,双方用对称加密传数据(快),对称加密的钥匙用非对称加密来安全传递(解决传钥匙难题)

五、证书的作用:名片 + 保险柜

证书(Certificate)是 HTTPS 安全链条的关键一环,它干两件事:证明"我是谁"(身份验证)和提供公钥(加密用)。

证书由证书颁发机构(CA)签发,浏览器内置了可信 CA 的名单。服务器出示证书后,浏览器会检查:签发机构是否在信任名单里、证书是否过期、域名是否匹配。任一不通过都会报警。证书的类型(DV/OV/EV、单域名/通配符/多域名)怎么选,可看SSL 证书类型指南

六、怎么让网站用上 HTTPS

对个人网站来说,最省钱的方案是 Let's Encrypt 的免费证书,有效期 90 天,配合自动续期可以"一劳永逸":

  1. 在服务器上安装 Certbot 等工具;
  2. 配置域名解析指向服务器;
  3. 运行命令自动申请并部署证书,同时配置 80 端口跳转到 443;
  4. 设置定时任务自动续期。

具体步骤可看Let's Encrypt SSL 配置指南。如果你的网站在 CDN 后面,证书配置会略有不同,见CDN 与 HTTPS 配置入门。整个站点从 HTTP 迁移到 HTTPS 的完整流程,可参考网站 HTTPS 迁移指南

七、常见问题(FAQ)

Q1:免费证书可靠吗? 可靠。Let's Encrypt 的 DV 证书与商业 DV 证书安全强度相同,区别主要在于商业证书提供更高级的验证、更长的有效期和人工客服。

Q2:为什么我的 HTTPS 网站浏览器还报警? 常见原因:证书过期、域名不匹配、证书链不完整、页面里混有 HTTP 资源。逐个排查即可。

Q3:HTTPS 会影响网站速度吗? 影响极小。TLS 握手带来的额外开销通常只有几十毫秒,配合现代 HTTP/2/HTTP/3 反而更快,利远大于弊。

Q4:HTTP 站点还能用吗? 能用,但所有主流浏览器都会标记为"不安全",登录、支付类功能会受阻,SEO 也会受影响,建议尽快迁移。

八、小结

一句话记住:HTTPS 用非对称加密安全传递钥匙、用对称加密高效传输数据、用证书验证对方身份,三者配合解决"偷看、篡改、假冒"三大风险。 想继续学习网站安全,可收藏安全与 SSL 分类