
HTTPS 早不是加分项而是及格线:浏览器会标"不安全",小程序与支付接口强制要求,搜索引擎也把它当基础信号。免费 DV 证书对绝大多数站点已经够用。
先说结论:HTTPS 现在不是"高级配置",是及格线——Chrome 会对 HTTP 页面标"不安全",微信小程序和支付接口强制要求 HTTPS,搜索引擎也把它作为基础信号。对绝大多数企业站,免费的 DV 证书完全够用,没必要买几千上万的 EV 证书(浏览器早已不再为 EV 显示绿色地址栏)。真正需要付费 OV/EV 的,主要是金融、医疗等有明确合规要求的场景。
| 类型 | 验证什么 | 签发时间 | 价格 | 适合 |
|---|---|---|---|---|
| DV(域名验证) | 只验证你控制这个域名 | 几分钟到几小时 | 免费 – 几百元/年 | 绝大多数企业站、博客、小程序后端 |
| OV(组织验证) | 额外验证企业真实存在 | 1–3 个工作日 | 几百 – 几千元/年 | 需要向客户证明企业身份的 B 端站点 |
| EV(扩展验证) | 最严格的企业审核 | 3–7 个工作日 | 几千 – 上万元/年 | 金融、医疗等有监管要求的场景 |
需要说清楚的一点:过去浏览器会为 EV 证书显示绿色地址栏加公司名,这个特性主流浏览器已经取消。也就是说,普通访客看不出 DV 和 EV 的区别,都能看到锁形图标。为"显得更可信"而买 EV,在体验上已经买不到对应的效果了。
最后一条对留资表单尤其重要。客户在你网站上填的手机号,走 HTTP 就是在公网上裸奔。
够。Let's Encrypt 提供三个月有效期的免费 DV 证书,配合自动续期脚本可以完全无人值守;国内云厂商也普遍提供免费的 DV 证书(通常一年期,需手动续)。
唯一要注意的是自动续期必须真的配上。见过太多站点因为忘记续证书,在某天早上突然变成"不安全",而负责人根本不知道发生了什么。建议做法:
1. 证书链不完整。只部署了站点证书,没带中间证书。桌面浏览器通常能自动补全,但安卓旧版本、部分小程序环境和 API 调用会直接失败。用 SSL 检测工具查一下"证书链是否完整"。
2. 混合内容。页面是 HTTPS,但里面的图片、脚本、样式还写着 http://。浏览器会拦截或降级提示。解决办法是全站资源改用相对协议或直接写 https://,改完在控制台看有没有 mixed content 警告。
3. 没有强制跳转。用户访问 http:// 时应该 301 跳到 https://,而不是两个版本都能打开——后者会造成同一内容两套 URL,对 SEO 不利。
4. HSTS 开得太急。Strict-Transport-Security 能让浏览器之后只用 HTTPS 访问,但如果配错(比如子域名有纯 HTTP 服务),会导致整站无法访问且用户端难以回退。建议先用较短的 max-age(如 300 秒)验证,确认无误后再逐步加长。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=300" always;
}
注意 fullchain.pem 而不是 cert.pem——前者包含中间证书,就是上面说的"证书链完整"。
开发环境用自签名证书没问题,但绝对不要放到线上。浏览器会显示整页红色警告,用户需要手动点"高级 → 继续访问",转化率基本归零,而且搜索引擎会把它当作无效证书处理。

添加微信客服,1 对 1 沟通