我们的服务遍布中国

我们的服务遍布中国
乃至世界

光网所服务的品牌地域与城市
北京 天津 上海 广州 深圳 香港 厦门 江苏 浙江 山东
重庆 长沙 武汉 成都 西安 宁夏 丽江 青海 云南 乌鲁木齐
黑龙江 内蒙古 河北 ...
光网服务与合作的全球各地
美国 加拿大 德国 法国 英国 瑞士 意大利 荷兰
印度 日本 韩国 ...

不论你的品牌在何处
我们都可以提供完善的服务与帮助

致电

0512-56969630
您所在的位置:首页 > SSL证书

教你如何给 Discuz! X3.1/3.2 开启https(SSL)支持!

发布时间:2015/9/3 8:24:35 浏览:2580打印字号:

DZ作为社区交流系统:1. 对高版本 PHP 兼容不佳 2. 对 HTTPS 兼容不佳 3.目前官方没有出台一键切换方案,那么我们要解决这个问题只能自己动手了。

 

1、SSL证书&配置 

首先,要开启SSL,总得有一个证书吧?无论是正规CA颁发的,还是自己签的,没有肯定是不行的。如果没有的话,先去申请个吧。(具体方法请谷歌,这里不再赘述) 
 


2、Discuz! 优化 
 
2.1、程序调整 
 
自 Discuz! X3 开始,已经加入了对https的支持,如果你使用https访问论坛,论坛中的链接都会变成https。如果你发现大部分链接都已经使用了https,就代表Discuz已经自动识别了,此时,可以跳过本步,直接进入下一步。 
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 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));


修改过后,更新缓存,发现大多数链接都变成了https。 
 
 
2.2、后台设置 
 
 
在后台还有一些设置,可能会干扰https的使用 
 
 
后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的 
 
 
UCenter后台 > 应用管理 > 应用的主URL,修改为https开头 
 
 
另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果进行了之前的几步还是无法启用,可以暂时删除这里的设置试试。 
 
 
3、清理缓存 
 
 
设置完成之后,需要清理缓存,使设置生效。 
 

 
清理缓存及内存缓存,如果设置了帖子缓存,还需清理数据内的缓存(清空相应cache数据库,或者静等缓存失效) 
 

总结,目的就是修改HTTP头改成HTTPS。
 
至此,Discuz https启用成功,当然,在访问某些页面的时候,可能锁会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。只能等待Discuz进一步支持https。 


其它介绍:





二、开启https后的问题处理:

ucenter通信失败的问题:https://www.aitiancheng.com/article-374.html

应用中心无法访问的问题:https://www.aitiancheng.com/article-459.html

百度联盟广告无法展示的问题:https://www.aitiancheng.com/article-466.html

页面排版混乱的问题:https://www.aitiancheng.com/article-481.html

浏览器提示不安全的问题:https://www.aitiancheng.com/article-462.html