HTTPS 配置生成
证书拿到了,配置怎么写才不算踩坑?填几个参数生成一段可以直接用的配置。档位的取舍很实在:现代档只留 TLS 1.3,最快最安全但老设备连不上;兼容档是绝大多数网站该选的;旧版档为了照顾 Windows XP、Android 4 这类古董会开回一些弱套件,不得已才用。
nginx 配置
配完记得做这几件事
- 先测语法再重载
- nginx:
nginx -t && nginx -s reload;Apache:apachectl configtest && apachectl graceful。直接 restart 会断连接,reload 不会。 - 确认证书链完整
openssl s_client -connect example.com:443 -servername example.com看Verify return code: 0 (ok)。桌面浏览器能打开不代表链是全的,手机 App 可能照样报错。也可以直接用 在线证书检测。- HSTS 要慎重
- 一旦下发,浏览器在 max-age 期间强制用 HTTPS 访问你的域名,中途想退回 HTTP 是做不到的。建议先用
max-age=300跑几天确认没问题,再加到一年。带includeSubDomains前要确认所有子域名都有证书。preload提交进浏览器预置列表后移除要等好几个月,非必要别加。 - OCSP Stapling 需要能出网
- 服务器要能访问 CA 的 OCSP 地址,否则首次握手会卡一下。nginx 还需要配
resolver才能解析 OCSP 域名——这是最常见的「配了没生效」原因。 - 证书自动续期
- 有效期只会越来越短,务必自动化。装得了软件就用 acme.sh / certbot;装不了用浏览器版 ACME 手动续,记得设个日历提醒。