给网站加一把锁:HTTPS 与 SSL 证书入门

如果你经常在网上买东西、登录网银,大概早就习惯了浏览器地址栏那把小小的锁。可这把锁到底意味着什么?为什么登录邮箱、输密码的时候网站一定要走加密,而看个新闻却不需要?很多人天天见它,却从没认真想过。对自己做网站的人来说,搞懂 HTTPS 和 SSL 证书,又是迟早绕不开的一课。这篇入门文章就把这件事讲清楚,让你知道这把”锁”是怎么装上的。

2012 年网站加密与 SSL 证书安全概念配图

为什么普通的 HTTP 不够用

先要明白问题出在哪。网页在网络上传输,本质上是一台服务器和你的浏览器之间一来一回地传数据包。如果用的是普通的 HTTP,这些数据是明文——也就是说,它从你家路由器出发,经过好几个中间节点才能到达网站服务器,沿途任何一个环节都有可能被人看到、甚至被改动。

这在看一篇新闻时问题不大,但一旦你在网页上输入了密码、填了银行卡号,明文传输就等于把这些信息写在明信片上一路公开传递。更危险的是,攻击者还可以中途篡改内容,比如把你跳转的银行页面换成一个高仿的钓鱼站,你却毫无察觉。HTTPS 要解决的,正是这两个根本问题:数据加密,让旁人看不懂;身份验证,让你确认对面真的是你要找的那家网站。

HTTPS 是怎么工作的

简单说,HTTPS 就是在 HTTP 和底层网络之间,加了一层加密协议(这一层的早期版本叫 SSL,后来的版本叫 TLS,大家习惯上还是管它叫 SSL 证书)。当你的浏览器访问一个 HTTPS 网站时,双方会先做一次”握手”:网站把自己的证书发给浏览器,浏览器验证这个证书是不是由可信机构签发的、上面的域名对不对得上。确认无误后,双方协商出一把临时的对称密钥,之后所有通信就用这把密钥加密。

这里的关键,是那张”证书”。它由一个权威的证书机构(CA)签发,相当于网站的”数字身份证”。证书上写明了这个证书属于哪个域名、由哪家机构背书、有效期到什么时候。浏览器之所以敢信任它,是因为操作系统和浏览器预装了一批它信任的根证书,只要你的证书是从这些可信机构那里申请来的,浏览器就不会报警告。这就是为什么自己随便签一个证书,浏览器会大红字警告你——因为没有权威机构背书。

给自己的网站装一把锁

对一个站长来说,启用 HTTPS 大致分三步。第一步,向证书机构申请一张证书。你需要证明自己确实拥有这个域名,通常是在网站上放一个验证文件,或者做一个特定的 DNS 记录,机构确认后就会把证书文件发给你。这些机构有大有小,价格和信任度也各不相同,老牌的几家最权威,但收费也最贵。第二步,把证书文件和对应的私钥配置到你的 Web 服务器上,让它在 443 端口监听加密连接。第三步,把原来指向 80 端口的 HTTP 请求,跳转到 HTTPS。

听起来不难,但每一步都有坑:证书配错了路径,浏览器照样报警;私钥保管不当,等于门锁钥匙丢了;证书过期忘了续,网站会突然对所有访客显示”不安全”。所以一旦上了 HTTPS,就得把证书到期时间记在日历上,这是运维里一件看似琐碎却极其重要的事。

哪些网站该上 HTTPS

需要清醒认识到的是,给全站都上 HTTPS 在今天(2012 年)还不是默认实践。证书要花钱,加密解密也会给服务器带来一点额外开销。因此在现实里,大家普遍的做法是:凡是涉及登录、支付、隐私信息的页面,一定走 HTTPS;而纯公开、不敏感的内容页,继续用 HTTP 也无妨。像博客这种公开阅读的站点,很多站长当时还没有全站加密的习惯。

但趋势是明确的。越来越多的网站意识到,光是登录页加密还不够,因为登录之后的 cookie 如果在普通 HTTP 里传输,照样可能被窃取。把整个站点都跑在加密通道上,正在从”银行专属”慢慢变成”负责任网站的标配”。对做产品的人来说,现在开始了解 HTTPS,不是赶时髦,而是提前给未来做准备。

公共 Wi-Fi 为什么尤其要小心

理解了上面这些,你就能明白一个常被提醒的忠告:在咖啡馆、机场这些公共 Wi-Fi 里,千万别随便登录敏感账号。因为在同一个无线网络里,你的数据包本来就和陌生人共用一条通道,稍懂技术的人用现成的抓包工具,就能把明文传输的内容看个一清二楚。如果你这时候在 HTTP 页面上输入了邮箱密码,相当于在大庭广众之下念了一遍。这也是为什么越来越多有良心的服务,连登录页带登录后的整站,都强制走 HTTPS——在不可信的网络环境里,加密是你唯一的防线。

很多人对”网上有人盯着我”这件事缺乏实感,觉得哪会那么巧被盯上。但安全从来不是”会不会针对你”,而是”防不防得住随手一试”。工具是现成的,攻击是自动化的,你在公共网络里的每一次明文登录,都是在赌路上没有人顺手捞一把。养成”输密码前先看锁”的习惯,成本几乎为零,却能挡住绝大多数日常风险。

结语

HTTPS 这把锁,看不见摸不着,却是互联网信任的基石。正是因为有了它,电子商务、网上银行、邮箱登录这些我们每天依赖的服务,才真正敢把敏感信息交出去。对普通用户来说,记住一件事就够了:凡是要输密码、付钱的页面,先看看地址栏那把锁在不在;对站长来说,理解证书的来龙去脉,是把自己网站往”可信”方向推的第一步。这道加密的门,值得你早一点推开看看。

赵久龙 站长

852 文章
0 粉丝
0 评论

0 条评论

还没有评论,快来抢沙发吧!

发表评论

客服