苹果CMS如何设置SSL证书并强制HTTPS?未覆盖。

juming
juming 正式会员超兽战士
发布于 2026-10-07 06:41 ·1 浏览 ·0 回复

按苹果CMS(本文以 v10 为例)配合宝塔面板 + Nginx 的环境操作,学完这篇你能把站点从 http 完整切到 https,并且访问 http 时自动 301 跳到 https,浏览器地址栏出现小锁不报混合内容警告。

第一步:先确认你已有证书文件

这一步要做的是拿到可用的 SSL 证书,做完后你会得到两个文件:一个 .pem(或 .crt)公钥文件和一个 .key 私钥文件。

两条常见路线:

  • 宝塔面板申请:登录宝塔 → 左侧菜单「网站」→ 找到你的站点 → 点右侧「设置」→ 切到「SSL」标签 → 选择「Let's Encrypt」→ 勾选你的域名 → 点「申请」。申请成功后证书会自动填进下面的输入框。
  • 云厂商申请:阿里云控制台「数字证书管理服务」或腾讯云「SSL 证书」,申请免费 DV 证书,签发后下载「Nginx」格式的压缩包,里面就是 .pem 和 .key。

注意:申请 Let's Encrypt 前,域名必须已经解析到这台服务器并且 80 端口能被外网访问,否则验证一定失败。

第二步:在 Nginx 里挂上证书并开 301 跳转

这一步是核心,做完后 https 能正常访问、http 会自动跳过去。

如果用宝塔:在第一步的「SSL」标签里,把证书内容粘贴进「证书(PEM格式)」框、私钥粘贴进「密钥(KEY)」框 → 点「保存」。然后打开上方的「强制HTTPS」开关(宝塔 8.x 里叫「强制HTTPS」,7.x 里可能显示为「强制https」)。这一步宝塔会自动帮你写好跳转规则。

如果手动改配置文件:宝塔「网站」→ 站点「设置」→「配置文件」,参考下面写法:

server {
    listen 80;
    server_name www.example.com example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com example.com;

    ssl_certificate     /www/server/panel/vhost/cert/example.com/fullchain.pem;
    ssl_certificate_key /www/server/panel/vhost/cert/example.com/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;

    root /www/wwwroot/example.com;
    index index.php index.html;

    # 苹果CMS 伪静态规则保持原样
    include /www/server/panel/vhost/rewrite/example.com.conf;
}

改完点「保存」,宝塔会提示配置已重载;命令行的话执行 nginx -t && nginx -s reload。

注意:80 端口的 server 块里不要放站点根目录和伪静态,只留 return 301,否则容易出现「跳转后 404」或死循环。

第三步:把苹果CMS后台的网站域名改成 https

证书装好只是服务器层通了,苹果CMS 自己生成的链接还是 http,不改这里前台图片、播放器地址都会是 http。

登录苹果CMS后台(默认 /admin.php)→ 顶部菜单「系统」→ 左侧「网站参数配置」→「基本设置」→ 把「网站域名」一项从 http://www.example.com 改成 https://www.example.com(结尾不要带斜杠)→ 拉到底部点「保存」。

如果保存后前台还是 http,检查一下 application/extra/maccms.php 里有没有残留的 http:// 域名配置,有就一并改掉。

注意:改域名后如果后台登录不进去(一直跳回登录页),多半是浏览器里还存着旧域名的 Cookie,清一下浏览器缓存或用无痕窗口重试。

第四步:干掉模板和数据库里写死的 http

这一步处理「小锁打不开」的元凶——混合内容。做完后 F12 控制台不再报 Mixed Content 警告。

按 F12 打开开发者工具,切到「Console」和「Network」,刷新首页,凡是标红的 http:// 请求都是要处理的。常见来源有三处:

  1. 模板文件:宝塔「文件」进到 application/template/ 或 template/ 目录,全局搜索 http://你的域名,替换成 https://你的域名。
  2. 数据库:宝塔「数据库」→ 点对应库的「管理」进 phpMyAdmin → 找到 mac_vod 等表里 vod_pic、vod_content 字段里写死的图片地址,用 SQL 批量替换:UPDATE mac_vod SET vod_pic = REPLACE(vod_pic,'http://www.example.com','https://www.example.com');
  3. 播放器与采集接口:后台「系统」→「播放器」和「采集」里的接口地址,改成 https 或用 // 开头。

注意:操作数据库前先在宝塔「数据库」里点「备份」,改错了能回滚。另外图片如果存在第三方图床且不支持 https,只能换图床。

第五步:验证是否真的全站 HTTPS

做完上面四步,用下面三种方式确认一遍:

  1. 浏览器地址栏输入 http://www.example.com,回车后地址应自动变成 https://,前面有小锁,点开显示「连接安全」。
  2. 命令行执行 curl -I http://www.example.com,返回头里应看到 HTTP/1.1 301 和 Location: https://...。
  3. F12 控制台应该没有红色 Mixed Content 报错。

如果用了 CDN(如又拍云、阿里云 CDN),还要到 CDN 控制台把「回源协议」改成 HTTPS,并上传同一份证书,否则可能出现「用户到 CDN 是 https、CDN 回源是 http」导致部分功能异常。

小结

  • 顺序不能乱:先装证书通 https,再改苹果CMS后台域名,最后清模板和数据库里的 http 残留。
  • 强制跳转靠 Nginx 的 return 301 或宝塔「强制HTTPS」开关,80 端口 server 块里别放站点根目录。
  • 后台「系统 → 网站参数配置 → 基本设置 → 网站域名」必须改成 https,否则前台链接还是 http。
  • 小锁打不开基本都是混合内容,用 F12 控制台定位,模板、数据库、播放器接口三处逐一替换。
  • 改数据库前先备份,改完清一次苹果CMS后台「系统 → 缓存管理」里的缓存。
版权声明:本文来自 GJ论坛《苹果CMS如何设置SSL证书并强制HTTPS?未覆盖。》
原文链接:https://www.gj0.com/thread-128.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~