DISCUZ开启SSL

这两天换上了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. 小灰 文章作者

      以前一直在论坛潜水,对论坛和建站这方面感兴趣多一点,论坛也是别人的,只是挂在我这里。

      回复
    1. 小灰 文章作者

      哈哈,你也可以的,我当时买的应该是特价吧,三年80块人民币,续费也是一样,实际用起来也比较省事。

      回复
  1. 笛声

    虽然三年COMODO不到100块,但是这家的代理商太多,有滥发之嫌,可能会被“不信任”所以还是一年一年买的好。

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

       输入表情 wordpress