首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >网站HTTPS与证书管理实战:证书部署、自动续期与混合内容排查

网站HTTPS与证书管理实战:证书部署、自动续期与混合内容排查

原创
作者头像
用户5598620
修改2026-09-09 20:25:37
修改2026-09-09 20:25:37
560
举报

导读:网站从 HTTP 升级到 HTTPS 已经是标配,但真正上线时总会遇到各种问题:证书部署后浏览器仍报不安全、证书到期忘记续期、HTTPS 页面里的 HTTP 资源被拦截。本文记录一套完整的 HTTPS 证书管理流程:申请部署、自动续期与混合内容排查。

一、HTTPS 解决什么问题

HTTP 是明文传输,账号密码、表单数据在链路中可被窃听或篡改;HTTPS 在 HTTP 与 TCP 之间加入 TLS 层,解决三件事:

加密:数据传输不可被窃读;

完整性:内容无法被中间人篡改;

身份认证:证书证明你访问的确实是目标站点。

现代浏览器对纯 HTTP 站点会标记"不安全",HTTPS 也是 HTTP/2、很多新 Web API 的前置条件。

二、证书申请与部署

证书申请的关键是证明域名所有权,常见方式有 DNS 解析验证与文件验证。拿到证书后在 Web 服务器配置。Nginx 示例:

代码语言:nginx
复制
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/example.com.pem;
    ssl_certificate_key /etc/ssl/example.com.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

同时保留 80 端口并 301 跳转到 HTTPS,避免用户手动输协议:

代码语言:nginx
复制
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

三、自动续期:别让证书过期

免费证书有效期通常只有 90 天,靠人工续期迟早出事。推荐用 acme 客户端自动续期:

代码语言:bash
复制
# 测试续期流程(不实际更换证书)
acme.sh --renew -d example.com --dry-run

# 写入定时任务,每天检查、临近过期自动续期并重载服务
0 3 * * * /root/.acme.sh/acme.sh --cron --home /root/.acme.sh

续期后必须 reload(不是 restart)Web 服务让新证书生效。建议再加一层外部监控:定时检测证书到期时间,剩余 20 天时告警,双保险。

四、混合内容排查

页面升级到 HTTPS 后,如果里面引用了 HTTP 的图片、脚本、接口,浏览器会拦截或告警,这就是混合内容。排查方法:

打开浏览器控制台,查看 Mixed Content 警告,逐条定位;

静态资源统一改成协议相对路径或直接写 https://;

第三方资源只引用支持 HTTPS 的版本,不支持的资源下载到自己的同源地址托管;

用内容安全策略头自动升级简单资源:

响应头:Content-Security-Policy: upgrade-insecure-requests

注意:upgrade-insecure-requests 只能兜底,第三方接口本身不支持 HTTPS 时仍然要换源。

五、常见踩坑清单

证书链不完整:只配了站点证书没配中间证书,部分老浏览器报证书错误,需要拼接完整链;

域名不匹配:证书覆盖 example.com 但访问 www.example.com,申请时把需要的域名都列入 SAN;

续期后没重载服务:文件换了但内存里还是旧证书,外部检测仍旧;

测试环境漏配:测试站用了自签证书,联调时接口被浏览器拦截,测试环境也应用统一证书策略。

六、纳入发布流程的运维建议

证书申请、服务器配置与续期定时任务是一项持续性运维工作,建议纳入发布流程:新域名上线时同步申请证书,部署后配置自动续期与到期告警,并用清单定期巡检。如果网站基于成型的建站平台搭建(如乔拓云企业网站),证书的申请、部署与续期通常在域名管理流程中一并完成,运维侧只需确认域名绑定与 HTTPS 开关状态正确。

七、复盘清单

上线后:用浏览器与在线检测工具各测一次,确认证书链完整、协议版本合规;

运维侧:确认自动续期任务与到期告警都生效;

页面侧:控制台无混合内容警告,所有资源走 HTTPS。

结语

HTTPS 不是"配一次就结束"的工作:部署解决有没有,自动续期解决会不会掉,混合内容排查解决页面是否真正安全。把这三件事流程化,网站的安全基线才算稳固。本文仅作技术分享,各平台功能以官方实时信息为准。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档