1. 前言

随着 HTTPS 的逐渐普及,很多浏览器在打开普通的 HTTP 网站时,都会给出安全警告或者不安全提示。为了网站和用户数据传输安全,采用 HTTPS 已势在必行。今天我们介绍下怎样对 Discuz! X3.4 实现全站 HTTPS。

2. 申请 SSL 证书

SSL 证书现在选择比较多,可以申请 Symantec 的免费型 DV SSL(在国内云服务提供商网站一般都可以免费申请,如腾讯云、阿里云),有效期是一年,到期前再次申请续期即可。也可以使用 Let's Encrypt 签发的证书,有效期一般是 3 个月,可以实现程序自动续签。要注意一下的是,使用 Let's Encrypt 证书的网站在 360 浏览器中会提示:该网站根证书不在 360 根证书计划内,未来可能不被 360 浏览器信任。由于 360 浏览器在国内还是有一定份额的,建议根据实际情况选择。

3. 服务器配置

申请到 SSL 证书后(一般为两个文件:cert.pem 和 cert.key),添加到站点配置文件中即可。以 Nginx 为例:

server
    {
        listen 80;
        server_name bbs.ilaoniu.cn;
        return 302 https://$server_name$request_uri;
    }

server
    {
        listen 443 ssl http2;
        server_name bbs.ilaoniu.cn;
        index index.html index.htm index.php default.html default.htm default.php;
        .
        .
        .
        ssl_certificate /usr/local/nginx/cert/bbs.ilaoniu.cn/cert.pem;
        ssl_certificate_key /usr/local/nginx/cert/bbs.ilaoniu.cn/cert.key;
        .
        .
        .
    }

上述配置文件中,我们将 HTTP 请求重定向到 HTTPS,建议使用 302 跳转。然后监听 443 端口,指定 SSL 证书路径。

4. Discuz! 配置

Discuz! X3.4 最新版很多地方对 HTTPS 进行了兼容处理,配置 HTTPS 访问只需要简单几步就可以完成。

4.1 网站 URL

位置:管理后台 > 全局 > 站点信息

网站 URL 使用 HTTPS:

file

4.2 UCenter 设置

位置:管理后台 > 站长 > UCenter 设置

UCenter 访问地址也修改为 HTTPS:

file

建议一并把最底下的 头像调用方式 修改为 使用静态地址调用头像

4.3 UCenter 应用主 URL

位置:管理后台 > UCenter > 应用管理

将 Discuz! 对应的主应用 URL 修改为 HTTPS:

file

4.4 刷新缓存

修改完之后,刷新缓存。

管理后台 > 界面 > 风格管理 页面更新 CSS 缓存,在 管理后台 > 工具 > 更新缓存 页面中更新缓存。

5. 总结

到这里就大功告成了!


参考资料: