HTTPS 基础入门:为什么现在的网站都要上 HTTPS
先从一个生活场景说起
你在咖啡馆连上免费 Wi-Fi,打开一个购物网站,输入账号密码下了单。
如果这个网站用的是 HTTP,你的账号、密码、订单信息都是以明文在网络上传输的。同一个 Wi-Fi 下的任何人,用简单的抓包工具就能把这些内容看得一清二楚,就像寄一张明信片,路上谁都能翻过来看一眼。
HTTPS 做的事,就是把这张明信片换成一个上锁的保险箱:内容只有你和网站能打开,中间经过的所有人只能看到一个锁着的盒子。
HTTPS 是什么
HTTPS 全称是 HyperText Transfer Protocol Secure,它不是一个全新的协议,而是「HTTP + TLS 加密层」。
可以这样理解:HTTP 负责「说什么」,TLS 负责「怎么安全地把话送到」。数据在发出之前先被 TLS 加密,到了对方手里再解密,中间人就算截获了,也只是一堆乱码。
如今浏览器对 HTTP 网站会直接标上「不安全」,主流网站基本都已切换到 HTTPS,这背后主要靠三件事。
第一件事:加密,防止偷看
HTTPS 使用两种加密方式配合工作。
对称加密:通信双方用同一把密钥加解密,速度快,适合传输大量数据。缺点是密钥怎么安全地交给对方是个难题。
非对称加密:有一对密钥,公钥可以公开,私钥自己保管。用公钥加密的数据只有私钥能解开。它解决了密钥传递的问题,但速度慢,不适合传大量数据。
TLS 的做法是取长补短:连接刚建立时,用非对称加密安全地协商出一把临时的对称密钥,之后正式传输数据时全程用这把对称密钥加密。这个协商过程就是常说的「TLS 握手」。
第二件事:身份验证,防止冒充
加密只解决了「不被偷看」,还没解决「你连的到底是不是真网站」。
设想一下:你连上了一个假冒的银行网站,它也可以和你加密通信,那你输的密码还是会被它拿走。
HTTPS 靠数字证书解决这个问题。网站要向权威的证书颁发机构(CA)申请证书,CA 会核实网站的身份,然后签发一张包含网站域名和公钥的证书。
浏览器访问网站时,会先检查这张证书:是不是可信 CA 签发的、域名对不对、有没有过期。任何一项不对,浏览器就会弹出醒目的警告。这就像对方先出示了一张由权威机构盖章的身份证,你才放心跟他谈正事。
第三件事:完整性校验,防止篡改
数据在传输途中还可能被动手脚,比如被插入广告、被替换下载链接。
TLS 在传输时会给数据附带一个校验值(消息认证码),接收方收到后会重新计算并比对。只要数据被改过一个字节,校验就会失败,连接随即中断。所以 HTTPS 下,你看到的网页内容就是服务器发出的原样。
TLS 握手到底发生了什么
把上面三件事串起来,一次 HTTPS 连接大致是这样:
第一步,浏览器向服务器打招呼,说明自己支持的 TLS 版本和加密算法。
第二步,服务器返回自己的数字证书,并选定一套加密算法。
第三步,浏览器验证证书可信后,用证书里的公钥加密生成一个随机数发给服务器,双方据此算出同一把会话密钥。
第四步,之后所有数据都用这把会话密钥对称加密传输。
整个过程通常在几十毫秒内完成,用户几乎无感。
普通人怎么判断一个网站安不安全
看地址栏:是 https 开头、有一把锁图标,说明连接是加密的,证书也是有效的。
但要注意:有锁只代表「传输是加密的、域名是真的」,不代表「这个网站本身可信」。钓鱼网站也可以申请到合法证书。所以遇到陌生链接,除了看锁,还要核对域名是不是官方域名,别被长得像的假域名骗了。
网站想启用 HTTPS 怎么做
流程并不复杂:向 CA 申请证书(现在有免费的 DV 证书,几分钟就能签发),把证书部署到服务器上,再把 HTTP 访问自动跳转到 HTTPS 即可。
成本几乎为零,收益是用户数据安全、浏览器不再标「不安全」、搜索引擎排名也有加权。这也是 HTTPS 短短几年就全面普及的原因。
小结
HTTPS = HTTP + TLS,它用「非对称加密协商密钥、对称加密传数据」防偷看,用「CA 签发的数字证书」防冒充,用「完整性校验」防篡改。
下次你在地址栏看到那把小锁,可以想起它背后这一整套机制:互联网默认是明信片式的,HTTPS 是少数真正把信装进保险箱的努力。
- 点赞
- 收藏
- 关注作者
评论(0)