完美解决Discuz开启https教程显示安全绿标

    发布时间:2019-02-19

    阅读量

    后台-系统设置-扩展变量-手机广告位-内容页头部广告位
    这个也是源码专家钟振森在改www.ymzj.cn的时候发现的问题,Discuz开启完全跟其它的程序不一样。

    现来写一个教程希望能帮助到更多的Discuz爱好者。

    这个首先需要去申请一个SSL证书:

    建议:西部 8元一年,阿里云,腾讯云,百度云免费。。


    证书申请好后比如是空间的需要开启SSL,强制开启。。


    这些开启之后,就需要设置Discuz代码了。。

    第一步:

    全局 > 站点信息 > 网站 URL,修改为https://www.ymzj.cn的格式

    完美解决Discuz开启https教程显示安全绿标

    第二步:修成Discuz适配https

    如果你的Web服务是Apache,请忽略这一步,Nginx请继续看:

    Discuz判断网站是否启动SSL是采用 $_SERVER[‘HTTPS’] 的方式,此方法不支持Nginx(nginx+php-fpm),需要先做一些修改,让Discuz使用 $_SERVER[‘SERVER_PORT’]来判断网站是否启用SSL。

    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'], '/'))));
    复制代码


    第三步:Ucenter通信使用https方式

    后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的

    UCenter后台 > 应用管理 > 应用的主URL,修改为https开头。

    第五步:解决浏览器提示“加载不安全的脚本”
    <script src=”http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1″ type=”text/javascript” charset=”UTF-8″></script>
    复制代码
    温馨提示:以上这个代码也是导致Discuz卡的原因之一

    这个提示是因为这个脚本使用http方式加载的原因:


    此脚本的功能是检查补丁和安全通知,用处不大,果断删除。

    编辑模板的footer.htm 与header.htm ,http 替换为https:


    执行SQL语句,可以在DZ后台,或者phpmyadmin中都可以:
    UPDATE pre_forum_post SET message=REPLACE(message,’http://旧网址.com’,’https://新网址.com’);
    复制代码


    如果存在该问题则使用以下SQL语句即可:(注意符号标点~) 网址一定需要改为自己的。
    后台设置 

    第六步:把头像改为静态化:这块有后台站长-UCenter设置 最底下。。

    完美解决Discuz开启https教程显示安全绿标

    很多站长就是在这一步上面没处理好,所以安全绿标不显示。。

    在后台还有一些设置,可能会干扰https的使用 

    后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的 

    UCenter后台 > 应用管理 > 应用的主URL,修改为https开头 

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

    最后一步:清理缓存 

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

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

    至此,Discuz https启用成功,当然,在访问某些页面的时候,可能锁会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。只能等待Discuz进一步支持https。 
    后台-系统设置-扩展变量-手机广告位-内容页头部广告位
    留言与评论(共有 0 条评论)
       
    验证码: