教你如何給 Discuz! X3.1/3.2 開啟https(SSL)支援! – HTTPS SSL 教程
教你如何給 Discuz! X3.1/3.2 開啟https(SSL)支援! – HTTPS SSL 教程
DZ作為社群交流系統:1. 對高版本 PHP 相容不佳 2. 對 HTTPS 相容不佳 3.目前官方沒有推出一鍵切換方案,那麼我們要解決這個問題只能自己動手了。
1、 &配置
首先,要開啟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資料庫,或者靜等快取失效)
總結,目的就是修改HTTP頭改成HTTPS。
至此,Discuz https啟用成功,當然,在訪問某些頁面的時候,可能鎖會打上叉。因為頁面中載入了其他http內容。可能是統計程式碼、QQ分享程式碼、QQ秀頭像等,這部分服務暫時沒有提供https協議,因而無法啟用。只能等待Discuz進一步支援https。
全球可信CA機構
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31483669/viewspace-2695400/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Vesta 安裝SSL – HTTPS SSL 教程HTTP
- tomcat中開啟的對SSL(https)的支援TomcatHTTP
- SSL證書安裝指引教程 – HTTPS SSL 教程HTTP
- 伺服器配置ssl證書支援蘋果ATS方法 – HTTPS SSL 教程伺服器蘋果HTTP
- SSL證書格式轉換 – HTTPS SSL 教程HTTP
- SSL證書轉PEM格式 – HTTPS SSL 教程HTTP
- Nginx的SSL配置優化 – HTTPS SSL 教程Nginx優化HTTP
- nginx配置ssl加密(單/雙向認證、部分https) – HTTPS SSL 教程Nginx加密HTTP
- phpStudy安裝ssl證照 – HTTPS SSL 教程PHPHTTP
- SSL證書申請問題 – HTTPS SSL 教程HTTP
- Tomcat 安裝SSL證書 – HTTPS SSL 教程TomcatHTTP
- nginx使用ssl模組配置HTTPS支援NginxHTTP
- [HTTPS]SSL/TLSHTTPTLS
- apache下開啟ssl訪問,即httpsApacheHTTP
- 詳解如何給Tomcat配置Https/ssl證書TomcatHTTP
- 寶塔開啟ssl後https訪問不了HTTP
- SSL:http與httpsHTTP
- Java Keytool 命令使用教程 – HTTPS SSL 教程JavaHTTP
- nginx開啟ssl並把http重定向到httpsNginxHTTP
- 怎麼給網站配置SSL證書(https)網站HTTP
- 哪些IP SSL證書支援IP地址https加密呢?HTTP加密
- Nginx使用SSL模組配置httpsNginxHTTP
- HTTPS的SSL證書配置HTTP
- nginx docker容器配置https(ssl)NginxDockerHTTP
- 阿里雲伺服器apache配置SSL證書成功開啟Https的教程阿里伺服器ApacheHTTP
- IIS7 IIS8 自動跳轉到HTTPS – HTTPS SSL 教程HTTP
- iphone 簽名.mobileconfig檔案 – HTTPS SSL 教程iPhoneHTTP
- https Java SSL Exception protocol_versionHTTPJavaExceptionProtocol
- 有關https的SSL加密方式HTTP加密
- 【Using English】28 - Security with HTTPS and SSLHTTP
- 聊聊HTTPS和SSL/TLS協議HTTPTLS協議
- 本地簽發ssl證書(https)HTTP
- Linux上Nginx中開啟SSL模組,實現Https訪問LinuxNginxHTTP
- 在Drupal上安裝SSL證書啟用HTTPS加密訪問的教程HTTP加密
- iOS應用安裝失敗原因排查 – HTTPS SSL 教程iOSHTTP
- IIS6 多域名證書安裝 – HTTPS SSL 教程HTTP
- 使用免費SSL證書讓網站支援HTTPS訪問網站HTTP
- SSL證書生成,完成HTTPS驗證HTTP