一、前置准备工作
配置前需提前准备以下物料,避免操作中途卡壳:
- 已完成解析的域名,且该域名已绑定到你的ZBlog站点根目录
- 国内服务器需提前完成域名备案,否则无法正常绑定站点
- 对应域名的有效SSL证书,可直接在云服务商平台免费申请DV级证书,地址:阿里云免费SSL证书申请:https://www.aliyun.com/product/cas,腾讯云免费SSL证书申请:https://cloud.tencent.com/product/ssl
- 服务器/虚拟主机的管理权限,可修改站点配置文件、可登录ZBlog后台
二、服务器端HTTPS配置
根据你的站点运行环境选择对应的配置方案,三种方案选其一即可。
2.1 Nginx环境配置
申请证书后下载Nginx版本的证书文件,解压后得到.key和.pem两个文件,上传到服务器的/usr/local/nginx/conf/ssl目录(没有该目录则手动新建),然后编辑站点对应的Nginx配置文件,路径一般为/usr/local/nginx/conf/vhost/你的域名.conf,将以下配置直接覆盖原有配置,替换其中的占位内容:
```
server {
listen 80;
server_name 你的域名 www.你的域名;
所有HTTP请求301跳转到HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name 你的域名 www.你的域名;
root 站点根目录绝对路径; 示例:/www/wwwroot/abc.com
index index.php index.html index.htm;
SSL证书配置
ssl_certificate /usr/local/nginx/conf/ssl/你的域名.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/你的域名.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ZBlog伪静态规则(如果之前已经配置过可保留原有规则)
if (!-e $request_filename) {
rewrite ^/zb_install/(.) /zb_install/$1 last;
rewrite ^/zb_system/(.) /zb_system/$1 last;
rewrite ^(.)$ /index.php?$1 last;
}
PHP配置 保留原有服务器的PHP配置即可,无需修改
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
配置完成后执行nginx -t验证配置是否正确,返回success后执行systemctl reload nginx重载配置生效。
2.2 Apache环境配置
下载Apache版本的证书,解压得到.key、.crt、.ca-bundle三个文件,上传到服务器/etc/httpd/conf/ssl目录,编辑站点配置文件/etc/httpd/conf/vhost/你的域名.conf,替换为以下配置:
```
ServerName 你的域名
ServerAlias www.你的域名
HTTP跳HTTPS
RewriteEngine On
RewriteRule ^(.)$ https://%{SERVER_NAME}$1 [R=301,L]
ServerName 你的域名
ServerAlias www.你的域名
DocumentRoot 站点根目录绝对路径 示例:/var/www/html/abc.com
ErrorLog logs/你的域名-error_log
CustomLog logs/你的域名-access_log common
SSL配置
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl/你的域名.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/你的域名.key
SSLCertificateChainFile /etc/httpd/conf/ssl/你的域名.ca-bundle
SSLProtocol TLSv1.2 TLSv1.3
SSLCipherSuite HIGH:!aNULL:!MD5
ZBlog伪静态规则
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.)$ index.php?$1 [L]
```
配置完成后执行apachectl configtest验证,无误后执行systemctl reload httpd重载生效。
2.3 虚拟主机/面板环境配置

如果使用宝塔、云锁等可视化面板,无需手动修改配置文件,直接在面板的站点管理中找到对应站点,点击SSL选项,粘贴你申请的证书秘钥和证书内容,开启强制HTTPS和HTTP/2选项保存即可。
三、ZBlog后台全局配置修改
服务器端配置生效后,访问你的域名已经可以跳转到HTTPS,但站点内的静态资源、内链还是HTTP地址,需要完成以下两步修改:
3.1 基础站点地址修改
登录ZBlog后台,点击左侧站点设置,找到网站地址选项,将原有http开头的地址修改为https开头的完整域名,比如https://www.abc.com,点击保存。
3.2 全量数据地址替换
点击左侧插件管理,搜索安装官方数据库批量替换插件(下载地址:https://app.zblogcn.com/?id=1167),安装启用后,在插件设置中填写:
- 查找内容:http://你的域名(和你之前使用的HTTP地址完全一致,不要漏写/多写www)
- 替换内容:https://你的域名
- 选择所有数据表,点击执行替换,操作前请先备份数据库避免出错。
四、后续校验与避坑处理
4.1 站点访问校验
清空浏览器缓存后访问站点,查看浏览器地址栏是否出现小锁标识,点击小锁查看证书是否在有效期内,然后随机打开几个文章页面、后台页面、附件资源,确认没有出现加载异常的情况。
4.2 常见问题处理
- 页面显示不安全、部分资源加载失败:打开浏览器F12控制台,查看Network面板找到仍在加载的HTTP资源,回到ZBlog后台对应位置(比如主题设置、自定义代码、文章内容)修改为HTTPS地址即可。
- 伪静态失效、页面404:检查服务器配置中的ZBlog伪静态规则是否正确,宝塔面板可直接在站点伪静态选项中选择ZBlog预设规则一键配置。
- 后台登录异常、页面显示错乱:删除ZBlog根目录下的
zb_users/cache文件夹内所有缓存文件,重新登录即可。
- 证书过期无法访问:提前在SSL证书服务商处设置自动续费,到期前重新下载证书替换原有文件,重载服务器配置即可。
4.3 搜索引擎适配
登录百度、谷歌等搜索资源平台,在站点管理中添加HTTPS版本的站点,设置HTTPS优先,同时提交站点地图,加快搜索引擎抓取HTTPS页面的速度,避免流量损失。