DISCUZ开启SSL

Auth:大灰       Date:2017/11/28       Cat:灰常折腾       Word:共1277字

这两天换上了16年买的三年COMODO证书,感觉也没那么慢,对搜索引擎应该很好吧。

今天试着折腾了一下DISCUZ全站SSL,还是蛮顺利,虽然DISCUZ已经没落,但是使用的人还是依然多啊!

闲话少说,直接上内容。

折腾DISCUZ3.4,听说X3.4对https支持比较友好。

1、 首先申请LetsEncrypt 免费 SSL,主机面板一键解决,现在的主机几乎都支持。

2、后台 >全局 > 站点URL,改为https

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

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

3、设置301,设置跳转到HTTPS地址

3、更新缓存

4、ucenter通信失败解决方法 打开目录 uc_server/model/misc.php 文件 找到68行,在其下插入下面代码:

 if(substr($url,0,5)=='https'){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if($post){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } if($cookie){ curl_setopt($ch, CURLOPT_COOKIE, $cookie); } curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); return curl_exec($ch); }

后台?站长UCenter设置通信密钥和UCenter应用管理的通信密钥需要一致,否则通信会失败。 UCenter 访问地址也需要改为新的地址。

5、头像修改问题 在discuz目录里找到uc_client/client.php 【1】找到第235行

$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';

在下方添加以下代码

$matches['port'] = !empty($matches['port'])&&$scheme=='https' ? $matches['port'] : 443;

【2】找到261行

if(!$fp = @fsocketopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout)) {

修改为

if($port=='443'){ $temp = 'ssl://'; }else{ $temp = 'http://'; } if(!$fp = @fsocketopen($temp.($ip ? $ip : $host), $port, $errno, $errstr, $timeout)) {

打开浏览器,使用开发者工具或者查看源码逐一排查加载的非HTTPS资源并修改。

至此,应该没什么问题了,至于不安全链接,请自己慢慢修改。

引用:https://www.aitiancheng.com/article-707.html

《DISCUZ开启SSL》留言数:91

  1. 灰常记忆-胡俊杰胡俊杰

    论坛个人觉得没有特别大流量话做论坛十分乏力,论坛适合做大型的互动站点。然而我这种发发文章的,还是做做blog吧!

    25楼 回复

发表留言