ZBlogCMS 如何开启网站 HTTPS 证书
照着做完,你的 ZBlog 站点就能用 https:// 正常打开,并且所有 http 访问都会自动跳到 https,浏览器地址栏出现小锁图标。
第一步:准备证书文件
这一步要拿到两张证书文件:一张公钥(.pem 或 .crt)、一张私钥(.key),拿到后上传到服务器上固定目录,后面配置时要用路径引用它们。
如果你用宝塔面板,最省事:登录宝塔 → 左侧「网站」→ 找到你的站点点「设置」→ 顶部切到「SSL」标签 → 选「Let's Encrypt」→ 勾选你的域名 → 点「申请」。申请成功后证书会自动放到 /www/server/panel/vhost/cert/你的域名/ 目录下,文件名是 fullchain.pem 和 privkey.pem。
如果你用阿里云、腾讯云买的免费证书,下载得到的压缩包里选「Nginx」格式,解压出 .pem 和 .key 两个文件,用 FTP 或宝塔文件管理器上传到 /www/server/panel/vhost/cert/你的域名/。
注意:私钥文件(.key)绝对不能放在网站根目录
/www/wwwroot/下面,否则别人能直接下载走,证书就白申请了。
第二步:修改 Web 服务器配置,让 443 端口能跑起来
这一步是让服务器开始监听 443 端口。做完后,直接输入 https://你的域名 就能打开页面。
宝塔用户在上一步点完「申请」后,SSL 页面会自动写好配置,你只要把「强制 HTTPS」开关打开就行,这一步可以跳过。
手动配置 Nginx 的话,编辑站点配置文件(宝塔路径是 /www/server/panel/vhost/nginx/你的域名.conf),内容改成:
server {
listen 443 ssl http2;
server_name www.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;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /www/wwwroot/example.com;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
server {
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri;
}
第二段 server 就是强制跳转,return 301 会把所有 http 请求永久重定向到 https。
改完执行 nginx -t 检查语法,出现 syntax is ok 和 test is successful 再执行 nginx -s reload 重载。
注意:
fastcgi_pass的 sock 路径要和你原来配置里的保持一致,不同 PHP 版本路径不同(如 php-cgi-74.sock 对应 PHP 7.4)。直接照抄容易导致 502 错误,建议先备份原文件再改。
第三步:把 ZBlog 的站点地址改成 https
这一步是告诉 ZBlog「我的网站现在叫 https 了」,否则页面里的链接、图片、CSS 还会指回 http,导致样式错乱或浏览器报「混合内容」警告。
登录 ZBlog 后台(默认地址 /zb_system/login.php),进入「网站设置」→「全局设置」,找到「网站地址」这一项,把原来的 http://www.example.com 改成 https://www.example.com,注意末尾不要加斜杠。保存。
如果后台已经因为 https 配置打不开了,可以直接改数据库:用 phpMyAdmin 打开你的 ZBlog 数据库,找到 zbp_config 表,搜索 conf_Name 为 ZC_BLOG_HOST 的那一行,把 conf_Value 改成 https://www.example.com。
注意:改之前先备份数据库,改错了整站链接都会指向错误地址,恢复起来很麻烦。
第四步:清空缓存,消除混合内容
这一步做完,前台所有资源才会真正走 https,浏览器地址栏的小锁才不会带感叹号。
后台进入「清空缓存并重新编译模板」,点一下。然后打开网站首页,按 F12 打开开发者工具,切到 Console 面板,如果还有黄色的 Mixed Content 警告,说明某张图片或某个 JS 还是 http 地址,多半写在了文章正文里或主题模板里,逐个改成 https 即可。
第五步(可选):开启 HSTS
想让浏览器以后永远只用 https 访问,可以在 443 的 server 段里加一行:
add_header Strict-Transport-Security "max-age=31536000" always;
注意:HSTS 一旦生效,在 max-age 时间内浏览器会拒绝 http 访问。如果证书没配好就先别开,否则自己也进不去后台,只能等时间过期或换域名。
小结
- 证书文件放
/www/server/panel/vhost/cert/,私钥不能进网站根目录 - 443 端口配置 + 80 端口 301 跳转,是两段独立的 server 块
- ZBlog 后台「网站设置 → 全局设置」里的网站地址必须同步改成 https
- 改完记得清空缓存,用 F12 检查混合内容
- HSTS 建议最后再开,确认一切正常后再加
原文链接:https://www.gj0.com/thread-798.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。