Discuz! X3.1/3.2 开启https(SSL)支持

2016-08-16 18:25:15

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数据库,或者静等缓存失效)
至此,Discuz https启用成功,当然,在访问某些页面的时候,可能锁会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。只能等待Discuz进一步支持https。

相逢,错过

人生难受的不是没有相逢,而是相逢后终又错过,留下的只是朦胧的背影,若是无缘为何偏偏相逢,若是有缘为何最终竟然错过,生命中能使我们痛苦的即是错误,引发我们感触的即是相逢,而我们怀念的竟然那样的朦胧。人生痛事憾事很多,最痛最沉的就是错过,如果生活是一条单行道,就请你从此走在我的前面,让我时时可以看见你,如果生活是一条双行道,就请你让我牵着你的手穿行在茫茫人海里永远不会走丢,即使你很聪明很帅气很善良很可爱,我肯定不是第一个爱上你的人,也不是最后一个,不过我相信我是最爱你的那一个。

Windows Azure Pack – 安装和配置系列

场景: Contoso 公司是一家服务提供商,向客户(租户)提供虚拟机、SQL 数据库之类的 IaaS 服务。 Contoso 有一个域 Contoso.com,希望在上面部署一个 Windows Azure Pack 基础结构,以便提供 VM 和数据库服务。 他们希望设置一个概念验证,以便测试解决方案,这个解决方案有一个简化的设置,看起来与生产方案相似,将用来对常规概念进行测试。 概念验证环境如下图所示: 服务器的配置如下: **角色****名称****功能**Active DirectoryDC01.contoso.comActive Directory,ADFS,证书服务器Windows Azure PackWAP01.contoso.comWindows Azure Pack 快捷安装Service Provider FoundationSPF01.contoso.comService