HTTPS 常见部署问题及解决方案
这篇文章整理了作者在 HTTPS 和 HTTP/2 部署实践中收集的典型故障与解决方案,堪称一份实用的排错手册。 遇到问题时,作者推荐首先使用 Qualys SSL Labs 的在线测试工具进行诊断。针对 Let's Encrypt 证书申请验证失败的情况,文章建议改用 acme.sh 的 DNS 验证模式,通常能绕过服务器访问限制。对于 Chrome 53 浏览器报告的 ERR_CERTIFICATE_TRANSPARENCY_REQUIRED 错误,根因是 Chrome 的一个 Bug,解决方案是升级浏览器版本。 当浏览器提示证书错误时,文章指出需检查证书链的完整性,特别是不要遗漏中间证书。如果问题仅出现在老旧浏览器(如 IE8),则很可能是未启用 SNI(服务器名称指示)导致,可通过将站点部署在不同服务器、使用 SAN 证书或直接忽略这些旧浏览器来解决。 启用 HTTP/2 后访问异常(如 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY),通常是因为 CipherSuite 配置不当,可参考 Mozilla 或 CloudFlare 的权威配置进行调整。若浏览器在 Nginx 启用 HTTP/2 后仍降级为 HTTP/1.1,则可能是 OpenSSL 版本过低(低于 1.0.2)不支持 ALPN 协议协商所致。 最后,升级 HTTPS 后网站部分资源无法加载,原因往往是混用了 HTTP 资源,解决方案是确保所有外链资源均使用 HTTPS 协议。文章内容会持续更新,为开发者提供了具体的排查思路和改进方案。