苹果CMS如何设置SSL证书并强制HTTPS?未覆盖。
按苹果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:// 请求都是要处理的。常见来源有三处:
- 模板文件:宝塔「文件」进到
application/template/或template/目录,全局搜索http://你的域名,替换成https://你的域名。 - 数据库:宝塔「数据库」→ 点对应库的「管理」进 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'); - 播放器与采集接口:后台「系统」→「播放器」和「采集」里的接口地址,改成 https 或用
//开头。
注意:操作数据库前先在宝塔「数据库」里点「备份」,改错了能回滚。另外图片如果存在第三方图床且不支持 https,只能换图床。
第五步:验证是否真的全站 HTTPS
做完上面四步,用下面三种方式确认一遍:
- 浏览器地址栏输入
http://www.example.com,回车后地址应自动变成https://,前面有小锁,点开显示「连接安全」。 - 命令行执行
curl -I http://www.example.com,返回头里应看到HTTP/1.1 301和Location: https://...。 - F12 控制台应该没有红色 Mixed Content 报错。
如果用了 CDN(如又拍云、阿里云 CDN),还要到 CDN 控制台把「回源协议」改成 HTTPS,并上传同一份证书,否则可能出现「用户到 CDN 是 https、CDN 回源是 http」导致部分功能异常。
小结
- 顺序不能乱:先装证书通 https,再改苹果CMS后台域名,最后清模板和数据库里的 http 残留。
- 强制跳转靠 Nginx 的
return 301或宝塔「强制HTTPS」开关,80 端口 server 块里别放站点根目录。 - 后台「系统 → 网站参数配置 → 基本设置 → 网站域名」必须改成 https,否则前台链接还是 http。
- 小锁打不开基本都是混合内容,用 F12 控制台定位,模板、数据库、播放器接口三处逐一替换。
- 改数据库前先备份,改完清一次苹果CMS后台「系统 → 缓存管理」里的缓存。
原文链接:https://www.gj0.com/thread-128.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。