BWH Compass

HTTPS 证书申请与自动续期

证书申请需要证明域名控制权。HTTP 验证依赖正确解析和可访问的验证路径;DNS 验证则需要正确的 DNS 记录或受限 API 凭据。

BWH Compass 编辑整理更新于 约 4 分钟阅读

1. 先把域名和验证路径接通#

HTTPS 需要证书包含你正在访问的域名,服务器使用匹配的私钥,并能提供完整证书链。只把网址从 http 改成 https 不会自动获得证书。

申请前确认 A/AAAA 指向正确位置,服务器时间同步,网站可访问。HTTP-01 验证通常需要公网 80 端口;DNS-01 通过 DNS TXT 验证,适合通配符证书或不能开放 HTTP 的环境。选择方式后,要同时考虑下次如何自动续期。

2. 宝塔中为单个站点配置证书#

进入“网站 → 对应站点 → SSL”。使用面板支持的 ACME/Let's Encrypt 入口申请,或在已有证书入口填写匹配的私钥与证书链。域名列表只包含自己控制且需要服务的名称。

宝塔站点的 SSL 证书配置入口
宝塔官方文档公开界面截图(2026-09-16 核对)。图中的域名、IP、旧版软件列表和日期仅作界面示例,安装版本按正文与应用要求选择。

HTTP 验证失败时先检查解析、IPv6、80 端口和验证目录是否被重定向或认证拦截。DNS 验证使用最小权限令牌,限制到所需域名区域,不能把整个 DNS 账户的主密钥贴进公开教程。

3. 手工 Nginx 使用 Certbot#

已经由宝塔或 Caddy 管理证书时,先沿用现有管理方式,避免多个客户端同时改配置。手工 Nginx 环境可按 Certbot 官方安装选择器安装适合系统的版本,再备份 Nginx 配置并申请。

bash
sudo nginx -t
sudo certbot --nginx -d example.com -d www.example.com

这会启动域名验证并可能修改 Nginx 配置。只填写已经解析并准备使用的域名;没有 www 站点就不加它。按提示完成账户和证书选项,成功后检查生成的站点配置与证书路径。

4. 验证 HTTPS 后再强制跳转#

bash
curl -I https://example.com/
curl -I http://example.com/

HTTPS 应返回预期站点且没有证书错误。确认后让 HTTP 通过 301/308 跳到 HTTPS,避免多次跳转。WordPress 还要核对站点地址和数据库里的旧资源链接,不能只在代理层跳转就认为所有图片已改为 HTTPS。

如果有 CDN,浏览器到 CDN 与 CDN 到源站是两段连接,应使用有效源站证书和正确的加密模式。不要用关闭源站验证或浏览器忽略错误作为永久修复。

5. 实测续期,不只看定时器存在#

bash
sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timers --all

按安装方式检查自动续期任务。续期成功后,Web 服务还需要加载新证书;已有集成通常会处理,手动部署应配置正确的 deploy hook。DNS API 令牌失效、目录迁移或端口关闭,都可能导致几周后的续期失败。

HSTS 会让浏览器长期强制 HTTPS,确认所有相关域名和子域名都准备好后再考虑启用,初次部署不必直接加 preload。

6. 常见故障按证书链路处理#

域名不匹配,检查 SAN 与访问地址;证书不受信任,检查链是否完整、是否用到测试证书;跳转循环,检查代理传递的 HTTPS 信息和应用站点地址;部分用户失败,检查错误 AAAA 或旧缓存。

维护时记录证书到期时间并设置外部检查。更多见域名解析WordPress 迁移站点监控

完成后检查

外部检查主域名和所有子域名,确认没有混合内容;监控证书到期日并保留续期日志。

官方资料与相关入口