Discuz!X3.2论坛实现全站HTTPS终极方法教程
Discuz! X3.2 本身对HTTPS的支持很有限,程序本身支持,但还有很多地方需要调整和修改的。 真正的全站HTTPS就是: 1)站点全部链接默认HTTPS,无任何HTTP链接通过301跳转到HTTPS。 2)浏览器显示绿色安全标志,无“不安全内容”提示。 具体来说,我们需要从以下6个方面来实现我们最终的效果。 一、服务器前端程序的配置 一般来说,大家多使用Nginx作为前端程序,关于Nginx开启HTTPS的教程,网上有很多 这是本论坛的Nginx配置文件,Nginx版本为1.8.0。 server { listen 80; server_name ; index index.html index.htm index.php default.html default.htm default.php; root /data/web/www.aizhanku.com; return 301 $server_name$request_uri; #HSTS } server { listen 443 ssl; #listen [::]:80; server_name ; index index.html index.htm index.php default.html default.htm default.php; root /data/web/www.aizhanku.com; #SSL Start ssl_certificate /root/ssl.crt; ssl_certificate_key /root/ssl.key; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; #SSL End include discuzx.conf; #error_page 404 /404.html; location ~ [^/]\.php(/|$) { # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_param HTTPS $https if_not_empty; fastcgi_index index.php; include fastcgi.conf; #include pathinfo.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } access_log off; } 二、Discuz判断服务器是否使用SSL的修补和完善 Discuz判断服务器是否使用SSL的代码不适合Nginx+CGI的情况,即PHP-FPM。这个时候我们需要修改以下文件: Discuz采用 $_SERVER[‘HTTPS’] 的方式来判断SSL,但是因为我的VPS架构问题(nginx+php-fpm),无法采用这种方式识别,所以需要对Discuz程序进行一些调整(使用 $_SERVER[‘SERVER_PORT’] 来判断)。 source/class/discuz/discuz_application.php(约第187行处): 查找: $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false; 修改为: $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false; uc_server/avatar.php (约第13行处): 查找: define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')))); 修改为: define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 三、除去非HTTPS内容避免提示”不安全内容“ Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段JS加载脚本删除就行。 非楼主层如果有点评,那么点评者头像不是HTTPS开头,也需要修改一个文件来适配:template/default/forum/viewthread_node_body.htm(约180行),搜索div class="psta vm">,将下面一行注释掉或者删除。 打开浏览器,使用开发者工具或者查看源码逐一排查加载的非HTTPS资源并修改。 四、后台设置的修改完善 在后台还有一些设置,可能会干扰https的使用 后台 >全局 > 站点URL,改为https开头的 后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的 UCenter后台 > 应用管理 > 应用的主URL,修改为https开头。修改后可能会显示通讯失败,如果UC和论坛程序安装在同一机器,此失败可无视,实测可以和UC正常通讯不影响(测试是否正常通讯程序的Bug),如果UC和论坛程序不在一台机器上,有可能不能通讯。 另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果更新缓存后论坛默认连接还是HTTP,请删除 后台 > 全局 > 域名设置 > 应用域名 > 默认 里面的默认域名(一般去forum.php尾巴这里会有内容,为了HTTPS请删除)。 五、模板的调整 主要在模板的foot.html以及header.html等文件中,使用工具逐一排查模板文件中写死的HTTP链接,修改为HTTPS。 六、数据库的调整 在论坛这种交互社区中,经常回复发帖时会有出现主域名的链接,在没有HTTPS之前,链接都是HTTP开头,这个时候,我们需要修改数据库,运行下面的mysql命令更新数据库,将HTTP替换为HTTPS: 进入DZ后台:站长 – 数据库 – 升级 UPDATE pre_forum_post SET message=REPLACE(message,'',''); #请将替换为自己的域名 需要注意的是,出于安全考虑,Discuz后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,如果想自己随意书写SQL升级语句,需要将程序文件config/config_global.php当中的$_config[admincp][runquery] 设置修改为1。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jz/discuz/1886.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Discuz x2.5 伪静态规则成功
时间:2020-12-29
-
discuz X2正式版forum首页的
时间:2020-12-27
-
Discuz伪静态 配置搜索引擎
时间:2020-12-26
-
Discuz登录后总是显示未登
时间:2020-12-23
-
怎么换云服务器? Discuz论坛
时间:2020-12-23
-
Discuz!7.0主题回收站功能详
时间:2020-12-23
-
discuz 修改创始人密码、管
时间:2020-12-23
-
discuz论坛用户通过邮件验
时间:2020-12-23
热门文章
-
去掉discuz列表页的最新公告_Discuz模板开发
时间:2020-12-13
-
修改discuz X3.2论坛标题80个字符的长度限制
时间:2020-12-14
-
discuz 修改创始人密码、管理员登录密码的
时间:2020-12-23
-
discuz主题内容页面的打印按钮代码
时间:2020-12-13
-
Discuz!7.0主题回收站功能详解
时间:2020-12-23
-
footer.htm底部文件$_G['setting']['icp']、{if $
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
$article['related']Discuz 门户文章内容页的相
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
Discuz教程:使用微信登陆出现“目前无法
时间:2020-12-15
