网站HTTPS配置指南:申请、部署与续期

HTTPS上线至少涉及四件事:证明域名控制权、取得证书、让真正接收访问的服务使用证书、持续完成续期。某个面板显示“申请成功”,不代表浏览器已经访问到正确证书。本文适用于允许建站的产品;住宅云禁止建站,不支持域名和证书。

先确认要保护的名称和TLS入口

  • 列出实际访问的完整域名。example.com和www.example.com是两个名称;通配符的覆盖范围也不能无限延伸到所有层级。
  • 确认A/AAAA记录、CDN和反向代理。使用CDN时,要分别检查浏览器到CDN、CDN到源站的连接,不能只配置其中一端。
  • 记录当前Web服务、证书管理工具及配置路径。已有宝塔或Certbot续期流程时沿用同一管理链,避免多工具互相覆盖。
  • 确认产品允许对应端口与用途。如所购产品要求域名过白,先按该产品购买须知完成域名提交并核对结果;流程有疑问或提交后出现异常,再通过工单说明情况,不以关闭安全规则代替产品条件。

选择能持续完成的验证方式

方式 需要具备的条件 容易忽略的问题
HTTP-01 公网TCP 80能访问该名称的ACME验证路径。 本机能访问、首页正常或开放8080均不能单独证明80验证路径可达;通配符不能使用此方式。
DNS-01 能在实际权威DNS设置指定TXT记录。 注册商和DNS托管商可能不同;手动添加一次TXT不代表以后可以自动续期。

自动DNS验证需要工具支持对应DNS服务商,并妥善保管受限凭据。给Web服务器放置全权限DNS密钥会扩大风险,应尽量只授予所需区域和验证操作的范围。多服务器或代理环境要确认每次验证到达正确位置;申请失败时保留具体错误,不连续盲目重试。

申请后安装到真正处理HTTPS的服务

在面板中操作时,进入目标站点的SSL/证书设置,核对域名列表、验证方式和部署目标;独立Nginx则由受信任的ACME客户端或管理员维护证书路径。私钥只保存在必要位置,不能上传到公开网站目录、工单或群聊。证书文件通常需要完整链,不能只复制单张站点证书后忽略中间证书。

配置完成先运行对应Web服务的配置检测,通过后再加载。不要同时更换域名、应用路径、反代和重定向,让一个失败结果对应多项未知变更。先直接验证HTTPS,之后再处理HTTP跳转及应用内的HTTP链接。

从访问者角度验证,而非只看文件

在浏览器站点连接信息里查看实际证书:访问名称是否被覆盖、有效期是否正确、连接是否受信任。Ubuntu管理员还可对自己的实际域名执行以下只读检查,示例域名必须替换:

curl -I https://example.com/
openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error </dev/null

curl失败时先读具体的解析、连接或证书报错;不加-k跳过验证。OpenSSL中的SNI和名称验证都需使用实际域名,确认验证成功。证书正常后,检查页面、图片、脚本、登录和表单;浏览器混合内容、应用循环跳转与证书申请失败是不同问题。

把续期作为持续任务验收

  1. 确认正在使用哪一套续期任务、由什么账户执行,以及HTTP端口或DNS权限是否持续可用。
  2. 使用工具支持的模拟续期检查,并查看真实任务最近一次结果;开启自动选项不等于任务已成功。
  3. 记录实际证书到期时间,安排提前检查;不同证书机构策略可能变化,不把固定有效天数写成永久保证。
  4. 续期后确认Web服务、CDN或负载均衡已实际使用新证书;文件更新但服务仍加载旧证书也会导致到期告警。

按错误类型处理

现象 处理方向
域名验证失败 核对权威DNS、80路径或TXT内容与传播,结合完整错误,不仅看控制台保存成功。
访问到其他站点证书 检查SNI、域名绑定、TLS终止位置和默认站点。
证书已更新,浏览器仍旧版本 核对实际访问节点、CDN与Web加载状态,而不是再次申请。
HTTPS正常但登录循环 检查应用站点地址、可信代理和协议识别,不关闭HTTPS验证。

部署路线选择见Linux建站环境指南,DNS基础见DNS解析与核验。本分类的Certbot、主域名跳转及WordPress HTTPS教程提供相应操作流程。

继续按具体流程操作