HTTPS 保护的是传输链路
HTTPS 在 HTTP 通信中使用 TLS,为传输提供加密、完整性保护与服务器身份验证。它能降低传输内容被窃听或篡改的风险,但不能保证网页中的观点正确,也不能代替服务器和应用自身的安全维护。
浏览器通常通过受信任的证书链、域名匹配与有效期等条件判断证书。证书中的公钥可以公开,服务器私钥则必须保密。不要把私钥放入网站公开目录,或为了排错发送到聊天与公共论坛。
证书需要覆盖实际访问的名称
jdqsw.com 与 www.jdqsw.com 是不同的名称。如果两个地址都允许访问,证书应明确覆盖二者,或采用适用的其他覆盖方式。通配符证书的匹配规则也有限制,不能想当然认为它覆盖所有层级与根域名。
即使 www 只负责跳转,访问 https://www.jdqsw.com 时仍先发生 TLS 握手,之后浏览器才收到 HTTP 重定向。因此 www 的证书也需要正常,跳转不会自动消除证书错误。
申请证书是在证明域名控制权
以 Let's Encrypt 的 HTTP-01 验证为例,证书客户端会在域名的特定 HTTP 路径放置验证内容,证书机构通过访问该路径验证控制权。这要求解析、网络入口和验证路径能够正确到达目标站点。
DNS-01 则通过特定 DNS TXT 记录验证。两种方式的准备条件不同。不要为了一次申请成功而永久关闭身份校验,或把高权限 DNS 凭据交给不可信工具。
跳转与续期是独立的维护项目
HTTP 转 HTTPS、www 转主域名属于服务器配置。重定向应保留正常路径和查询参数,同时为证书验证留出必要入口。更改配置前先备份,通过语法检查后再平滑加载,避免把所有站点一起中断。
证书会过期,因此应设置自动续期并检查执行结果。自动任务存在不等于一定续期成功,解析变化、权限和验证路径都可能使续期失败。定期检查实际提供的证书和剩余有效期,而不只看本地文件。
遇到告警时如何排查
先查看浏览器说明:域名是否匹配、是否过期、系统时间是否正确、证书链是否完整。不要习惯性忽略警告,也不要让访问者关闭证书验证。可通过浏览器证书查看界面确认当前连接拿到的证书信息。
上线检查应分别访问主域名、www 与 HTTP 地址,确认最终地址、状态码和页面内容。若服务器承载多个站点,还应检查修改后其他站点是否继续提供各自的正确证书。
参考与延伸阅读
本文采用独立表述整理基础知识,以下官方资料用于核实原理和适用条件。