第一步配置cdn和https

1、首先去阿里云、腾讯云、七牛云等申请免费https证书

2、虚拟主机是不能直接支持https的,需要cdn处理后才可以,并且端口是80

3、开启cdn加速处理,(买一个cdn资源包,https也需要付费)关闭协议跟随回源,因为虚拟主机不支持443端口,选择ip回源,填写虚拟主机的ip地址,端口是80

4、打开cmd,用ping 加上域名来测试域名解析是否正常,然后在工具那里测试是否启用了cdn加速。

5.性能优化,开启页面优化和只能压缩。

6、直接用根域名开启cdn加速就行
以下是阿里云工单的说明:

CDN加速的源站并没有限制,并不是说只能加速对象储存OSS,也支持加速其它的。如果您的图片放在OSS,那您CDN域名的源站就设置OSS;如果您图片放在您的web服务器,那么CDN域名的源站就配置对应的服务器IP。

记得80端口。

第二步discuz X3.2开启支持https主要需要修改一下几个地方

:1. 、查找修改文件discuz_application.php :(适用于nginx+pfm环境,如果你的虚拟主机请把443改为80端口)
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;

2、查找修改文件avatar.php :
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'], '/'))));

3、除去非 HTTPS 内容避免提示”不安全内容“
Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段 JS 加载脚本删除就行。
非楼主层如果有点评,那么点评者头像不是 HTTPS 开头,也需要修改一个文件来适配: template/default/forum/viewthread_node_body.htm (约 180 行),搜索 div class="psta vm">,将下面一行注释掉或者删除。
打开浏览器,使用开发者工具或者查看源码逐一排查加载的非 HTTPS 资源并修改。

4、后台设置的修改完善
在后台还有一些设置,可能会干扰 https 的使用。

后台 >全局 > 站点 URL ,改为 https 开头的

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

UCenter 后台 > 应用管理 > 应用的主 URL ,修改为 https 开头。
修改后可能会显示通讯失败,如果 UC 和论坛程序安装在同一机器,此失败可无视,实测可以和 UC 正常通讯不影响(测试是否正常通讯程序的 Bug ),如果 UC 和论坛程序不在一台机器上,有可能不能通讯。 另外在 后台 > 全局 > 域名设置 中的一些设置也可能使 https 失效,如果更新缓存后论坛默认连接还是 HTTP ,请删除 后台 > 全局 > 域名设置 > 应用域名 > 默认 里面的默认域名(一般去 forum.php 尾巴这里会有内容,为了 HTTPS 请删除)。

5、模板的调整
主要在模板的 foot.html 以及 header.html 等文件中,使用工具逐一排查模板文件中写死的 HTTP 链接,修改为 HTTPS 。

6、解决QQ互联的问题 (自己可以先测试QQ互联有没有问题,我的discuz3.2的没有问题,所以就跳过这一步骤)

首先升级QQ互联插件,最低版本要求是 1.18.2,如果升级后依然不行,需要修改回调 URL 为非 HTTPS 的:

找到:

source/plugin/qqconnect/connect.class.php 大约41行

在common_base() 函数里面,将 $_G[‘siteurl’] 直接硬编码为 你的http的URL ,首先修改callback_url,如果不行,将所有包含connect.php 的 URL 全部替换。

7、将论坛帖子中网站的URL改成https格式的。

会员在发帖的过程中,很可能调用了本站别处的帖子或连接,而这个链接肯定是http的,所以需要将这些链接全部修改成https格式的:

执行SQL语句,可以在DZ后台,或者phpmyadmin中都可以:

  1. UPDATE pre_forum_post SET message=REPLACE(message,’http://旧网址.com’,’https://新网址.com’);

复制代码

8、修改模版各处http://为https://

这里为模版文件较多的用户提供一个简单的批量的https://模版替换教程(开启伪静态的可用)

打开source/function/function_core.php

搜索

$content = output_replace($content);

在下面加入

$content = str_replace('http://www.xxx.com','https://www.xxx.com',$content);

如果你有多个二级域名,可以加入

$content = preg_replace('http://(.*?)xxx.com','https://\1xxx.com',$content);

感谢葱子博客以及一些博主提供的第二部分说明。真担心审核不通过!

第三步discuz网站实现绿标以及去掉不安全脚本

  1. 有一个很坑的就是我的全局—域名设置—应用域名,这里填写了以前的域名,现在域名是https了,所有用这个就不行了,所以导致页面一直有重定向的问题,解决方法应用域名留空。
  2. 网站现在可以访问还是灰色的https,这其中就是有http的图片、CSS、JS等问题,外链好像是没有关系的,所以需要一一排查,我用火狐(版本)firebug排查发现很多问题。(要说明现在firebug停止更新了),所以要用firebug排查就需要火狐版本低一些,我的话很多啊!

具体的解决问题
(1)、https访问时出现http调用外部链接的均提示有不安全脚本。此时我们应当找到调用了哪些外部的http链接的JS或css

(2)、利用火狐firebug查看(如果有广告或360、百度联盟、谷歌联盟等广告的先关闭,还有包括百度分享也是不支持https的),我们找到如下四个外部调用的文件

  1. http://pc1.gtimg.com/js/jquery-1.4.4.min.js
  2. http://s.pc.qq.com/discuz/css/style.css
  3. http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1
  4. https://openapi.guanjia.qq.com/fcgi-bin/getdzjs?cmd=urlquery_gbk_zh_cn   无效链接

复制代码

(3)、接下来就一个一个的解决吧,第一个JS是因为DZ自带的电脑管家网址保镖插件造成的,进入后台关闭该插件即可。第二个是个调用了外部CSS导致的!这个怎么办呢?原理是把外部的CSS下载到本地来调用吧。下载CSS保存在自己的服务器网站目录里,修改
\source\plugin\pcmgr_url_safeguard\pcmgr_url_safeguard.class.php下的:

  1. // $jsscript .= '<link rel="stylesheet" type="text/css"  />';

复制代码

为你的:

  1. // $jsscript .= '<link rel="stylesheet" type="text/css"  />';

复制代码

(注意:修改后的地址你要保证你下载该外部CSS到你的网站目录,同时把style.css文件里调用的外部图片更换成本地图片路径)。至此,第二个问题解决。第三个是DZ漫游应用,这段代码是强制输出的,根本没有加判断。那么我们把它注释掉即可
找到/source/function/function_core.php

  1. $tipsService = Cloud::loadClass('Service_DiscuzTips');
  2. $tipsService->show();

复制代码

好了!
第四个问题是一个无效链接。忽略不管

(4)、JS容错。程序员在开发时会或多或少对浏览器的兼容考虑不周,这时候为了正常使用https我们得写个JS容错命令。(如果ie报错,并导致js无法顺利执行完毕,就必须找出报错的问题所在了,这才是最终的解决方法.)。在头部加入以下代码:

  1. <script type="text/javascript">
  2. function SlyarErrors() {
  3. return true;
  4. }
  5. window.onerror = SlyarErrors;
  6. </script>

复制代码

至此。全部解决。而对于广告联盟的外部JS暂时没有更好的办法!除非不使用广告联盟
感谢零度中国提供具体的解决问题

第四步discuz 插件有问题

  1. 这里是自己的新的,discuz有一些插件对https是有问题的,比如腾讯分析(cloudstat)、电脑管家网址保护 (pcmgr_url_safeguard)、百度结构化数据提交(听说是不支持https的)可能还有别的插件等等,所以这里用firebug检测最好了,检测好了就关闭插件就行,关闭不了就去ftp删除对应的插件(删除前请备份哦!慎用!),然后再关闭插件试试
  2. (1)、下载百度分享必备文件

在下方下载文件即可,解压密码为:wuzuowei.net,后得到的static文件夹上传到网站根目录(注:域名/static)。

(2)、替换调用代码

百度分享代码删除图中部分

删除百度分享代码中的以下网址

http://bdimg.share.baidu.com

至此,你就解决了百度分享不支持HTTPS的问题,很多的站长就是因为http转https的过程不能完美,所以没有给网站加密https协议。

注意:百度分享代码一般在主题文件里面或者后台设置里面,大家主题不同自己找找就可以找到了

下载百度分享源文件:https://download.csdn.net/download/qq_39937321/10549242

至此你已经可以全站cdn加https访问了,但是还是有一些帖子页面编辑的时候复制了别的http的图片,所以需要慢慢替换了,我也不知道有什么好方法替换图片,反正是官网不是很大,很快替换好,如果有好方法请留言教导一下,嘻嘻!这是自己亲测可行的,不知道有没有误导大家,也可以留言反馈,写这个文档花了一个小时还没有写完呐------额--这个有没有点赞的功能啊!嘻嘻嘻!

Discuz x3.2利用阿里云cdn处理https访问亲测教程的更多相关文章

  1. 阿里云CDN边缘脚本EdgeScript公测:简单语法完成CDN复杂配置

    CDN可以将源站内容分发至最靠近用户侧的节点,使得用户就近获取内容,提高用户的访问成功率和效率.作为CDN运维工程师,他的日常工作就是通过CDN系统的配置和管理,来确保CDN业务正常运转,以此来保障网 ...

  2. 阿里云linux安装nginx,亲测有效

    系统平台:CentOS release 6.6 (Final) 64位. 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtoo ...

  3. 利用阿里云如何开发一款直播app?

    在开发的过程中应该注意些什么?下面让小编告诉你: 随着互联网的发展,越来越多的人已经加入互联网的行列.而且很多的人也开始直播,和众多的网友分享自己身边事情.互联网还在加速发展,从PC互联网,到移动互联 ...

  4. 阿里云 CDN 业务基于边缘容器的云原生转型实践

    导读:本文基于边缘容器的阿里云 CDN 云原生实践, 涵盖了边缘容器的背景和趋势,边缘托管集群 ACK Managed Edge K8s(文中简称“Edge@ACK”) 的能力.架构,以及基于边缘容器 ...

  5. C#调用阿里云CDN API刷新缓存

    使用CDN必须要解决CDN缓存的问题,要么在每次更新文件时生成不同的URL,要么在每次更新文件时刷新CDN缓存.我们在一个实际应用场景中用到了后者,所以需要调用阿里云CDN的API进行缓存刷新的操作. ...

  6. 云计算之路-阿里云上:访问阿里云CDN上的图片,自动跳转到百度首页

    昨天有用户向我们反馈一篇博文(一条语句导致CPU持续100%)中的部分图片不能显示,我们的图片访问用的是阿里云CDN,原以为是某个CDN节点不稳定的问题,但在排查时发现这些图片不能显示竟然是因为请求时 ...

  7. 阿里云-CDN

    1.什么是CDN 内容分发网络,意思是将内容(静态资源,如文件等)缓存到全球加速节点,用户请求这些内容时,请求将调度到最近的CDN节点,加快了访问速度. 2.CDN原理 1.用户(北京)向www.a. ...

  8. 通过AccessKey调用阿里云CDN接口刷新CDN资源案例

    通过AccessKey远程调用阿里云CDN接口,快速实现自动化集成部署. CdnService.java package com.nfky.cdn; import com.aliyuncs.Defau ...

  9. 阿里云CDN+OSS完成图片加速

    我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...

随机推荐

  1. [EffectiveC++]item46:需要类型转换时请为模板定义非成员函数

  2. C++ new和delete重载

    C++ new和delete重载 2012-02-15 23:25:33|  分类: C/C++|举报|字号 订阅           首先,new和delete是运算符,重载new和delete是可 ...

  3. Java编程练习题

      曾经,有人说过,没有刷题的人生是不完整的.看了几天Java,我试着做了几道练习题,好让我的人生完整一点.(偷笑--)这里挑了一些题来跟大家分享,本文不定期更新. 题目集  1. 最后一个单词的长度 ...

  4. JavaScript验证字符串只能包含数字或者英文字符的代码实例

    验证字符串只能包含数字或者英文字符的代码实例:本章节分享一段代码实例,它实现了验证字符串内容是否只包含英文字符或者数字.代码实例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  5. python第一课——关于python的一些概念

    day01(上午): 1.学习方法(建议): 1).不要依赖于我的视频,绝对不要晚上将视频全部在过一遍 2).上课不要记笔记,而且不要用纸质的笔记本去整理笔记 3).不要只看不敲,代码方面我们需要做到 ...

  6. 七:Java之封装、抽象、多态和继承

    本文章介绍了关于Java中的面向对象封装.抽象.继承.多态特点 Java面向对象主要有四大特性:封装.抽象.继承和多态. 一.封装 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的总体, ...

  7. JavaScript中烧脑的&&和||

    在js中经常能看到以下的写法: var obj1 = a || b || c; var obj2 = a && b && c; 刚看到时,很容易认为返回的两个变量都是 ...

  8. Ingress 暴露tcp端口

    有一部分应用 需要暴露tcp端口,查看官方文档 https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/expo ...

  9. Spring事务(三)事务增强器

    摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 目录 一.创建事务 1. 获取事务 2. 处理已经存在的事务 3. 准 ...

  10. c++getline()、get()等

    1.cin 接受一个字符串,遇“空格”.“TAB”.“回车”都结束 2.cin.get() cin.get(字符变量名)可以用来接收字符 只能接收一个字符 cin.get(字符数组名,接收字符数目)用 ...