我有个习惯:每次看到别人新上线的网站,第一件事不是看内容,是看地址栏。
如果看到一个灰色锁图标,旁边写着”不安全”,我心里对这网站的评价瞬间打七折。不是针对谁,是本能反应——就好像去一家店,门口挂着”本店未取得营业执照”。
你可能会想:一个锁图标而已,真有那么重要?
还真有。而且比你想象的重要得多。
那个”不安全”标签,到底是怎么来的
先搞清楚一件事:浏览器凭什么给你的网站贴”不安全”标签。
你访问一个网站,本质上是浏览器和服务器之间来回传数据。你输入的内容、页面返回的内容,都是通过互联网传过来的。如果是 HTTP 协议,这些数据是明文传输——就像你寄了一封明信片,邮递员、分拣员、任何一个经手的人,都能看到上面写了什么。
HTTPS 不一样。它把你和服务器之间的通信加密了,相当于你寄的不是明信片,是一个上了锁的铁盒子。快递员能看到盒子,但打不开。只有你和收件人(服务器)有钥匙。
浏览器检查的就是这个:你和网站之间的通信,用的是明信片还是铁盒子。如果是明信片,就贴”不安全”。
这里有个很容易搞混的地方: 浏览器说”不安全”,不是说你的网站有病毒,也不是说你是骗子网站。它只是说”你们之间的通信没加密,别人可能偷看”。问题是——普通用户分不清这个区别。他们看到”不安全”三个字,想的就是”这网站有问题”,然后关掉。
有数据显示,大约 85% 的用户在看到”不安全”警告后会直接离开。不是 85% 的”部分用户”,是 85% 的所有用户。你辛辛苦苦做了 SEO、写了文章、引来了流量,结果三分之一的人——甚至更多——在门口就被劝退了。
不装 SSL 证书,远不止一个灰色锁图标
很多人觉得,不装 SSL 就是地址栏不好看,其他的没啥影响。这个想法低估了 HTTPS 的重要性。
后果一:百度排名直接吃亏。 百度在 2017 年就明确说过,HTTPS 站点在排名上有优势。虽然它不是排名最大的因素,但在两个网站内容质量差不多的时候,有 HTTPS 的排在前面。新站本来权重就低,每个排名因素都在争,你主动放弃这一个,等于起跑线就比别人靠后。
后果二:浏览器拦截越来越狠。 Chrome 现在对 HTTP 页面的处理越来越严格。包含表单的 HTTP 页面(比如评论框、联系表单),Chrome 会在地址栏直接标红。部分浏览器插件直接拒绝加载 HTTP 页面,用户连你的网站长什么样都看不到。
后果三:数据传输真的不安全。 如果你的网站有登录功能,哪怕只是一个简单的后台登录,用 HTTP 传输密码等于在公开场合喊出来。在咖啡厅、机场、酒店这些公共 WiFi 环境下,同一网络里的人用抓包工具就能看到你传了什么。这不是危言耸听——随便一个装了 Wireshark 的人,坐在你旁边,就能看到 HTTP 传输的所有内容。
后果四:第三方服务强制要求。 越来越多工具要求 HTTPS。百度站长平台的某些功能、部分 CDN 服务、甚至一些 WordPress 插件,都要求网站必须 HTTPS 才能正常使用。没有 SSL,你可能连这些工具都用不了。
SSL 证书免费了,为什么还有人没装?
既然 SSL 这么重要,而且现在免费了,为什么还有大量网站没装?
我观察到的原因有三个:
第一个,”不知道”。 很多个人站长建站的时候,教程里没提 SSL 这回事,或者一笔带过。他们以为网站能打开就行了,根本不知道还需要装证书。这不是懒,是信息差。
第二个,”以为要花钱”。 几年前 SSL 证书确实要花钱买,便宜的几百块一年,贵的几千上万。但 Let’s Encrypt 出来之后,SSL 证书已经完全免费了。很多人不知道这件事,或者以为免费证书”不安全””不如付费的”。实际上,Let’s Encrypt 的加密强度和付费证书没有任何区别,唯一的区别是付费证书多了商业保险和售后支持——这两个东西对个人站长来说基本没用。
第三个,”装过一次,过期了没续”。 这个坑我自己踩过。Let’s Encrypt 免费证书的有效期只有 90 天,到期了得续签。虽然宝塔面板可以自动续签,但如果宝塔的定时任务出了毛病,或者你手动申请过一次之后没勾自动续签,证书就会默默过期。过期了浏览器不会给你发通知,你也不会天天看自己的网站——直到某天有人告诉你”你网站打不开了”,你才意识到证书过期。我经历过一次,证书过期两天才发现,那两天里所有访客看到的都是安全警告页面。
怎么装:宝塔面板一键申请,真的不难
说回正题。装 SSL 证书,很多人以为要敲一堆命令、配一堆文件。以前确实是这样,但现在宝塔面板把整个流程简化到几个点击。不熟悉宝塔面板的话,可以先看这篇宝塔面板部署网站完整教程,从添加站点到 HTTPS 上线都有讲。
第一步:确认你的网站已经能正常访问。 申请 SSL 证书的时候,Let’s Encrypt 需要验证你的域名确实归你所有。验证方式一般是文件验证——它在你的网站根目录放一个临时文件,然后去访问这个文件,能访问到就说明域名是你的。所以申请之前,域名必须已经解析到服务器,网站能正常打开。
第二步:宝塔面板 → 网站 → 设置 → SSL。 在 SSL 页面里,你会看到”Let’s Encrypt”这个标签页。点进去,勾选你的域名,下面有个”强制 HTTPS”的选项,勾上。然后点”申请”。
这里有个容易漏的细节: 申请之前,确认一下你的域名解析里有没有开启 CDN 或者代理。如果你用了 Cloudflare,在申请证书的时候需要暂时关掉 CDN 代理(把橙色的云朵图标点成灰色),等证书申请完再开回来。因为 Cloudflare 代理会拦截 Let’s Encrypt 的验证请求,导致验证失败。不关 CDN 直接申请,大概率报错,而且报错信息很模糊,你根本不知道是 CDN 的问题。
第三步:等待 30 秒。 宝塔会自动完成验证、申请、部署。成功之后,SSL 页面会显示”已部署”状态,证书有效期 90 天。
第四步:打开”强制 HTTPS”。 这一步很多人忘。装了证书只是让 HTTPS 可用,但 HTTP 还能正常访问——等于你家装了防盗门,但旧门也没封,小偷还是能进来。开启强制 HTTPS 后,所有 HTTP 请求都会被 301 跳转到 HTTPS 版本,搜索引擎和用户访问的都是加密版本。
第五步:去 WordPress 后台改地址。 WordPress 后台 → 设置 → 常规,把”WordPress 地址”和”站点地址”里的 http:// 改成 https://。忘掉这一步,你的页面里会混用 http 和 https 资源,浏览器报”混合内容”警告,锁图标变成灰色甚至消失——等于白装了。
自动续签:别让证书过期这件事发生在你身上
Let’s Encrypt 证书 90 天有效期,听起来很短。但宝塔面板内置了自动续签功能,到期前会自动续,理论上你不需要手动操作。
问题在于,自动续签有时候会失败。 我遇到过两种情况:
一次是宝塔面板的定时任务不知道为什么停了。宝塔后台有个计划任务叫”续签 Let’s Encrypt 证书”,默认每天执行一次。但这个任务有时候会因为宝塔版本更新、服务器重启、或者你改过什么配置而被停掉。停了之后证书不会立刻过期,它会在过期前 30 天尝试续签,如果续签失败,你完全不察觉——直到 90 天到了,证书过期,网站挂了。
另一次更冤:我换了个域名解析服务商,旧服务商的 DNS 记录还在,但没指向我的服务器。Let’s Encrypt 验证的时候,跑去找旧 DNS 的服务器,当然找不到,验证失败,续签也失败。
怎么避免? 两个办法:
第一,装完证书之后,立刻去宝塔的 SSL 页面确认一下”自动续签”是勾上的。然后去计划任务页面,确认”续签 Let’s Encrypt 证书”这个任务是启用状态。
第二,设个日历提醒。在手机日历上每 80 天设一个提醒,标题就写”检查 SSL 证书”。80 天比 90 天短,给你留了 10 天缓冲。到时候打开网站看一眼,地址栏是绿锁就没问题。这个操作花 10 秒,但能避免证书过期导致网站挂掉。
付费证书和免费证书,到底差在哪
有人说免费证书不安全,有人说付费证书是智商税。到底怎么回事?
先说结论:加密强度完全一样。 不管是 Let’s Encrypt 的免费证书,还是几千块一年的 EV 证书,加密算法都是行业标准,没有哪个比哪个更安全。黑客不会因为你用的是免费证书就更容易破解你的加密。
那付费证书贵在哪?
贵在”信任等级”和”服务”。
证书分三种级别:DV(域名验证)、OV(组织验证)、EV(扩展验证)。Let’s Encrypt 提供的是 DV 证书,只验证你拥有这个域名。OV 证书会额外验证你的公司/组织身份,EV 证书的验证最严格,会在地址栏显示公司名称(绿色地址栏)。
对于个人网站来说,DV 证书完全够用。你不开公司,也不需要地址栏显示公司名。OV 和 EV 证书更适合电商、金融、政府网站,用户需要确认”这个网站确实是某某公司运营的”。
另外,付费证书还有保险。 很多付费证书附带商业保险——如果因为证书问题导致你的用户数据泄露,保险公司会赔钱。这个对个人站长来说基本用不上。
我有没有用过付费证书? 用过一次。前年帮一个客户做企业站,对方要求”必须用 EV 证书,显得正规”。花了两千多块,等了两周才审核通过。部署完之后,效果就是地址栏多了个公司名,其他跟免费证书完全一样。我自己觉得没必要,但客户觉得值——他觉得那个绿色的公司名能让来访者信任。这个其实不是技术问题,是心理问题。如果你只是想把自己的网站做好,Let’s Encrypt 免费证书就是最好的选择,没有之一。
装完 SSL 之后,还有一件小事容易忘
证书装好了,HTTPS 也强制跳转了,WordPress 地址也改了——还有一件事很多人会漏掉。
去百度站长平台更新站点信息。
百度站长平台里有”站点信息”页面,里面记录了你网站的域名。如果你之前提交的是 HTTP 版本,装了 SSL 之后需要手动更新到 HTTPS 版本。百度不会自动检测你换了 HTTPS,它的蜘蛛会继续爬 HTTP 版本,然后发现所有页面都 301 跳转到 HTTPS——这其实不好,等于多走了一步,增加了抓取延迟。
正确的做法是:在百度站长平台里,把站点信息从 HTTP 改成 HTTPS,重新验证一下站点所有权,重新提交一次 sitemap。让百度知道”我的网站已经升级到 HTTPS 了,以后直接爬 HTTPS 就行”。关于百度站长平台的完整配置,可以参考这篇新站上线前必做的SEO基础设置,里面有详细的站点验证和 sitemap 提交流程。
另外,如果你之前提交过 sitemap,sitemap 里的 URL 都是 HTTP 的。装了 HTTPS 之后,Rank Math 会自动更新 sitemap 里的 URL 为 HTTPS,但你需要去站长平台重新提交一次。不然百度蜘蛛还在用旧的 HTTP sitemap,每次爬都是 301——效率低,对收录不友好。
最后想说
SSL 证书这件事,本质上是一个”信息差”问题。很多人不是不想装,是不知道免费、不知道简单、不知道重要。
现在你知道了。宝塔面板一键申请,Let’s Encrypt 完全免费,自动续签,部署不超过三分钟。这三分钟花下去,换来的是:浏览器不再显示”不安全”,百度排名有加分,用户数据不会被偷看,第三方服务也能正常用。
如果非要说一个最重要的理由,我觉得是:你花了几十个小时建站、写文章、做 SEO,结果因为一个 3 分钟就能搞定的 SSL 证书,劝退了 85% 的访客——这生意,亏大了。
如果你在装 SSL 证书的过程中卡住了,或者装完之后网站”混合内容”警告怎么也消不掉,欢迎联系我。证书这件事,踩坑的人比想象中多得多,有时候就是缺一个人帮你点一下”强制 HTTPS”那个按钮。
本文由 wujianzhan.com 原创发布,如需转载请联系作者。
有建站或 SEO 方面的问题?点这里联系我,一起交流。
