海洋 CMS 网站如何配置 SSL 证书实现 HTTPS

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-08 14:05 ·2 浏览 ·0 回复

海洋CMS 配置 HTTPS 的核心只有三步:签发并安装证书 → 在 Nginx 或 Apache 里让站点监听 443 并指向证书文件 → 把海洋CMS 后台的站点域名、数据库和模板里的 http:// 全换成 https:// 并清一次缓存。顺序不能颠倒,证书没生效就先把后台地址改成 https,会导致后台直接打不开。

海洋CMS 配置 HTTPS 总共要动哪些地方?

结论:动三个层面,缺一个就会出现「首页能开、图片裂了」或「后台登录跳回 http」的问题。

  • 服务器层:Web 服务器(Nginx/Apache)的 443 监听 + 证书路径 + 80 端口 301 跳转。
  • 程序层:海洋CMS 后台「基本参数设置」里的网站地址/站点域名,必须写成 https://www.example.com。
  • 数据层:文章内容、模板、播放器代码、统计代码里写死的 http:// 图片与外链。

怎么免费申请 SSL 证书?

结论:用 Let's Encrypt 的 certbot 一条命令签发,证书有效期 90 天,可配置自动续期。


apt install certbot python3-certbot-nginx -y
# CentOS
yum install certbot python3-certbot-nginx -y

certbot --nginx -d www.example.com -d example.com

前提是域名 A 记录已经解析到这台服务器、80 端口能从公网访问(certbot 默认走 HTTP-01 验证)。续期测试用 certbot renew --dry-run,安装时会自动写入定时任务,每天检查两次,剩余 30 天内自动续。

Nginx 下海洋CMS 的 SSL 配置怎么写?

结论:443 的 server 块加三行证书指令,80 的 server 块只保留 301 跳转。root 必须指向含 index.php 的那层目录,多一层或少一层都会首页 404。

server {
    listen 443 ssl http2;
    server_name www.example.com;
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    root /www/wwwroot/seacms;
    index index.php index.html;
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
server {
    listen 80;
    server_name www.example.com;
    return 301 https://$host$request_uri;
}

改完执行 nginx -t && nginx -s reload,报错先看路径拼写。

Apache 下怎么配?

结论:开启 mod_ssl,443 虚拟主机里加 SSLEngine on 和证书路径,再用 .htaccess 做跳转。

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    DocumentRoot /var/www/html/seacms
</VirtualHost>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

开启 HTTPS 后页面错乱、图片不显示怎么办?

结论:首要排查方向是混合内容(Mixed Content,指 https 页面里加载了 http 资源,浏览器会直接拦截)。按 F12 打开 Console,搜索关键词 Mixed Content,报错里会逐条列出具体 URL。

修复走三条路:一是在后台基本参数设置里把网站域名改成 https:// 开头;二是用 mysqldump 备份数据库后,把内容表和模板表里的 http://www.example.com 批量替换成 https://www.example.com;三是模板文件里写死的链接直接改成协议相对写法 //www.example.com/xxx.jpg,这样 http 和 https 访问都不报错。主题 JS、播放器脚本、第三方统计代码、外链图片是四个高频触发点,逐个换成 https 源即可。

改完之后必须做的收尾动作有哪些?

结论:清缓存 + 确认伪静态 + 按需开 HSTS,三件事一件都不能漏。

海洋CMS 会把配置和页面缓存写在 data 目录下,后台改完域名后,一定要在后台执行一次「更新缓存/清理缓存」,否则前台仍会输出旧的 http 链接。伪静态规则一般不受协议影响,但如果你用的是宝塔等面板,记得在面板里同步勾选 HTTPS 并重新保存一次配置。

想进一步收紧安全,可以在 443 的 server 块加 add_header Strict-Transport-Security "max-age=31536000" always;。HSTS 会让浏览器在一年内强制走 https,所以在全站(含子域名)都确认支持 https 之后再开,避免需要用 http 调试时回不去。

总结起来:证书用 certbot 签发,Nginx/Apache 负责 443 监听和 301 跳转,海洋CMS 侧改后台域名、数据库链接、模板外链并清缓存。三处都改完,地址栏的锁标志和全站 https 才算真正落地。

版权声明:本文来自 GJ站长论坛《海洋 CMS 网站如何配置 SSL 证书实现 HTTPS》
原文链接:https://www.gj0.com/thread-993.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~