民审-M

Discuz X3.3论坛使用360网站卫士、百度云加速、沃通等SSL完美开启https教程(完整版)

作者:民审-M   发布时间:2016-09-01 11:04   回复数:136   浏览数:11184
民审-M
11184136民审-M金牌草根
热门 加亮 2016-09-01 11:04:55
11184136 热门 加亮 2016-09-01 11:04:55
[p=25, null, left][color=rgb(59, 62, 79)]前提:已经拥有域名证书,且服务器支持添加SSL证书(如VPS或云主机,以及部分虚拟主机)[/p][p=25, null, left][color=rgb(59, 62, 79)]
[/p][p=25, null, left][color=rgb(59, 62, 79)]3[color=rgb(59, 62, 79)]60网站卫士SSL证书免费开启地址:http://wangzhan.360.com/set/protect/[color=rgb(59, 62, 79)] (推荐!)[/p][p=25, null, left][color=rgb(59, 62, 79)]百度云加速HTTPS加速支持:http://next.su.baidu.com/console/website/https-cdn.html#zid/[/p][p=25, null, left][color=rgb(59, 62, 79)]沃通免费ssl证书:https://bbs.wosign.com/forum-37-1.html[/p][p=25, null, left][color=rgb(59, 62, 79)]狗爹SSL证书:https://sg.godaddy.com/zh/web-security/ssl-certificate[/p][p=25, null, left][color=rgb(59, 62, 79)]
[/p][p=25, null, left][color=rgb(59, 62, 79)]虽然DiscuzX3.2、X3.3已经针对https做了优化,但仍有很多地方需要改动,经过在几个生产环境的改造中发现,Discuz目前可以完美支持https并显示绿色https图标,不过有些麻烦,且每个环境都会出现自己的问题。[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第一步:[/p][p=25, null, left][color=rgb(59, 62, 79)]全局 > 站点信息 > 网站 URL,修改为https://www.cgzz8.cn/的格式[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第二步:修成Discuz适配https[/p][p=25, null, left][color=rgb(59, 62, 79)]如果你的Web服务是Apache,请忽略这一步,Nginx请继续看:[/p][p=25, null, left][color=rgb(59, 62, 79)]Discuz判断网站是否启动SSL是采用 $_SERVER[‘HTTPS’] 的方式,此方法不支持Nginx(nginx+php-fpm),需要先做一些修改,让Discuz使用 $_SERVER[‘SERVER_PORT’]来判断网站是否启用SSL。[/p][p=25, null, left][color=rgb(59, 62, 79)]source/class/discuz/discuz_application.php(约第187行处):[/p][p=25, null, left][color=rgb(59, 62, 79)]查找:[/p]$_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
[p=25, null, left][color=rgb(59, 62, 79)]修改为:[/p]$_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;[p=25, null, left][color=rgb(59, 62, 79)]
[/p][p=25, null, left][color=rgb(59, 62, 79)]uc_server/avatar.php (约第13行处):[/p][p=25, null, left][color=rgb(59, 62, 79)]查找:[/p]define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));[p=25, null, left][color=rgb(59, 62, 79)]修改为:[/p]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'], '/'))));[p=25, null, left][color=rgb(59, 62, 79)]
[/p][p=25, null, left][color=rgb(59, 62, 79)]懒人包下载:【适用于:Discuz_X3.2_SC_GBK【2016-06-01】】或Discuz! X3.3更新版本。[/p][p=25, null, left][color=rgb(59, 62, 79)]upload.zip[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第三步:Ucenter通信使用https方式[/p][p=25, null, left][color=rgb(59, 62, 79)]后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的[/p][p=25, null, left][color=rgb(59, 62, 79)]UCenter后台 > 应用管理 > 应用的主URL,修改为https开头。[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第五步:解决浏览器提示“加载不安全的脚本”[/p][p=25, null, left][color=rgb(59, 62, 79)]这个提示是因为这个脚本使用http方式加载的原因:[/p]<script src=”http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1″ type=”text/javascript” charset=”UTF-8″></script>
[p=25, null, left][color=rgb(59, 62, 79)],此脚本的功能是检查补丁和安全通知,用处不大,果断删除。[/p][p=25, null, left][color=rgb(59, 62, 79)]删除方法:编辑模板的footer.htm,在最后找到并删掉:[/p]<!–{eval output();}–>
[p=25, null, left][color=rgb(59, 62, 79)]即可。[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第六步:解决QQ互联的问题[/p][p=25, null, left][color=rgb(59, 62, 79)]首先升级QQ互联插件,最低版本要求是 1.18.2,如果升级后依然不行,需要修改回调 URL 为非 HTTPS 的:[/p][p=25, null, left][color=rgb(59, 62, 79)]找到:[/p][p=25, null, left][color=rgb(59, 62, 79)]source/plugin/qqconnect/connect.class.php 大约41行[/p][p=25, null, left][color=rgb(59, 62, 79)]在common_base() 函数里面,将 $_G[‘siteurl’] 直接硬编码为 你的http的URL ,首先修改callback_url,如果不行,将所有包含connect.php 的 URL 全部替换。[/p]
[p=25, null, left][color=rgb(59, 62, 79)]第七步:将论坛帖子中网站的URL改成https格式的。[/p][p=25, null, left][color=rgb(59, 62, 79)]会员在发帖的过程中,很可能调用了本站别处的帖子或连接,而这个链接肯定是http的,所以需要将这些链接全部修改成https格式的:[/p][p=25, null, left][color=rgb(59, 62, 79)]执行SQL语句,可以在DZ后台,或者phpmyadmin中都可以:[/p][p=25, null, left][color=rgb(59, 62, 79)]
本部分内容设定了隐藏,需要回复后才能看到
[/p][p=25, null, left][color=rgb(59, 62, 79)]最后,Nginx开启强制https跳转,在nginx虚拟主机配置文件中,在Server字段增加:[/p][p=25, null, left][color=rgb(59, 62, 79)]
本部分内容设定了隐藏,需要回复后才能看到
[/p][p=25, null, left][color=rgb(59, 62, 79)]注意:这里需要根据自己的服务器环境配置,不正确或者有问题的配置可能导致Ucenter通信失败,Apache需要在.htaccess中添加规则。[/p][p=25, null, left][color=rgb(59, 62, 79)]Apache .htaccess规则:[/p][p=25, null, left][color=rgb(59, 62, 79)]
本部分内容设定了隐藏,需要回复后才能看到
[/p]
修改过后,更新缓存,发现大多数链接都变成了https.
2.2、后台设置

在后台还有一些设置,可能会干扰https的使用
 
后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的
 
UCenter后台 > 应用管理 > 应用的主URL,修改为https开头

另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果进行了之前的几步还是无法启用,可以暂时删除这里的设置试试。
 
 
3、清理缓存

设置完成之后,需要清理缓存,使设置生效。

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

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

 
[p=25, null, left][color=rgb(59, 62, 79)]
[/p][p=25, null, left][color=rgb(59, 62, 79)]到此,你应该可以看到绿色的https标志了。[/p]
[p=25, null, left]常见问题:[/p]
[常见问题] 关于DZ3.3使用360网站卫士等https出现脚本安全、证书错误等提示的解决办法
(出处: 草根吧)
营销名师杨永春
沙发营销名师杨永春 2018-12-06 16:51
楼主写的真好
shinyday
板凳shinyday步入草根 2018-12-01 19:27

楼主太厉害了!楼主,I*老*虎*U!我觉得草根吧真是个好地方!
小手冰凉
地板小手冰凉步入草根 2018-10-31 20:57
werwrewrewrewr
呆呆英国代代
4楼呆呆英国代代终身ViP 2018-10-27 23:14
好东西,先谢了!!!!!!!!!!!!!!!!
qq895833574
5楼qq895833574步入草根 2018-10-09 00:56
谢谢分享
浮伤年华♂
6楼浮伤年华♂步入草根 2018-09-28 15:38
为啥3.4不能上传头像!!!!!
平凡之路
7楼平凡之路步入草根 2018-08-25 08:50
 .htaccess规则
大表哥网络
8楼大表哥网络步入草根 2018-08-24 21:58
Discuz X3.3论坛使用360网站卫士、百度云加速、沃通等SSL完美开启https教程(完整版)
平凡之路
9楼平凡之路步入草根 2018-08-24 18:14

DZ建站资源有求必应谢谢分享谢谢
1606847139
10楼1606847139步入草根 2018-08-04 00:04
66666666666很好用不错吧!
神圣队长
11楼神圣队长步入草根 2018-07-17 00:27
这都要隐藏啊……
老虎爱吃肉
12楼老虎爱吃肉步入草根 2018-07-14 13:50
Discuz X3.3论坛使用360网站卫士、百度云加速、沃通等SSL完美开启https教程(完整版) [修改]
高级模式
BColorImageLinkQuote
五七东信
13楼五七东信步入草根 2018-06-22 22:04
谢谢分享谢谢
色胆包天
14楼色胆包天终身ViP 2018-06-21 12:46
这个 学习了!!!!!!!!!!
游客
登录后才可以回帖,登录 或者 注册