上周有位客户发来手机截图,页面显示「无法访问此网站」,下面一行小字「该网站暂时无法访问」。
他的第一反应是网站出故障了,问是不是服务器挂了。

实际不是。他的站好好跑着,只是浏览器用 https 去连,而站上没装证书——连不上,所以报错。
这种误判每周都会遇到几回。判断方法很简单,三条命令,不用登录服务器。
打开命令行,或者用浏览器的地址栏,把网址前面手动写成 http://。
能打开,问题基本就定位了:网站没坏,是协议层的事。
我拿那个客户的站实测过:http 返回 200,https 直接握手失败。同一个域名,同一台服务器,区别只在协议。
这一步排除掉的是「服务器挂了」「DNS 解析错」「程序报错」这几种情况——那些故障,http 也一样打不开。
浏览器的提示不完全一样,但大体分三种,含义完全不同:
「无法访问此网站」「该网站暂时无法访问」——连接建不起来。没配证书、或者证书域名对不上,都会这样。
「您的连接不是私密连接」——证书有,但是自签的、过期的、或者域名不匹配。
「连接已重置」「响应时间过长」——这多半是网络或防火墙的事,跟证书无关。
前两种是证书问题,第三种要查别的地方。看文案比猜快得多。
这一步最容易被忽略。
证书通常只签给了某个具体主机名。很多人只给 www.你的域名.com 配了,裸域 你的域名.com 没配。
结果就是:客户从书签点进来能开,自己手打域名就报错。同一个站,两个结果。
我自己也踩过——检查时发现带 www 的 301 跳 https 正常返回 200,裸域的 https 直接失败。不专门测一遍,这个问题不会被发现。
两个地址都要测,别只测一个。
浏览器改了策略。地址栏里输入域名,现在会先尝试 https,连不上才考虑降级。有些浏览器干脆不降级,直接给错误页。
以前 http 是默认,https 是加分项。现在反过来了。
客户的手机换了一台、浏览器升了一次版本,同一个网址就打不开了——他没改任何东西,但环境变了。
这件事的解法很直接:给站点配 SSL 证书,让 https 能正常握手。
站点架在宝塔这类面板上,申请和部署通常在面板里点几下就能完成,不用改代码。
要注意的是续期。证书有有效期,到期没续,表现和一开始没装一模一样——客户又收到一张「无法访问」的截图。部署时把自动续期一起配好,后面就不用管。
最后一步不能漏:让 http 自动 301 跳到 https。不跳的话,客户书签里的旧地址会一直用 http 访问,等于证书装了没用上。
做了这么多年的站,这个问题反复出现,根源在交付环节没有清单。建议固定成三条:
一、https 能正常访问。 不只是 http,两个都要通。
二、裸域和 www 都配了。 证书要覆盖两个主机名,或者分别签。
三、http 自动跳 https。 301,不是 302。永久跳转,让搜索引擎把权重归到 https 版本。
这三条都过了,客户就基本不会再发来「网站打不开」的截图。
这不是安全问题,是体验问题。
站点没证书,数据该传还是传,只是浏览器会把它标成「不安全」。真正吃亏的是客户——他看到一个红色警告页,第一反应是这家公司不专业,而不是「我的证书过期了」。
关于 HTTP 和 HTTPS 在原理上的区别,之前写过一篇更细的:为什么建议用 HTTPS 协议。这篇只解决一件事:打不开的时候,先查哪里。