Discuz教學-採用Let’s Encrypt&Ubuntu將DiscuzX3.2 SSL化


SSL化已經是時代不可缺少的事情,如果是自己的測試網站就算了,但如果是商業用 or 公司用就不能馬虎,尤其最近Google於今年七月將宣布沒有HTTPS的網站將列為不安全,所以今年之內將網站SSL化是勢必的!這邊HF也做了一下功課如何懶人SSL化Discuz。

系統:Ubuntu 14.04 LTS
PHP版本:5.6.5(印象我忘了XD)
Discuz : X3.2
依照Discuz官方論壇網友提供的文章,程式上是需要做一些小修改,否則無法正常SSL化。
首先我們要先針對Discuz原始碼做修正。

1. source/class/discuz/discuz_application.php 
 然後找
$_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. uc_server/avatar.php  
  查找以下
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了,
再來就是針對系統後台的設置
1. 後台 > 站長 > UCenter设置 > UCenter 訪問地址,修改成https
2. UCenter後台 > 應用管理 > 應用的主URL,修改成https 
3.清理暫存即可。 
※這邊有個地方要注意,就是導航列若沒有正常HTTPS的話,可能是你跟HF做一樣的事情,請刪除後台 > 全局 > 域名設置 > 應用域名 > 默認裡面默認域名刪除即可正常HTTPS。
最後一個地方做調整就是,在於模板修正部分模板中的footer.html及header.html可能會有寫死http連結,要自己去修正唷~
如果是使用預設的模板,HF印象header.html裏面有五個地方是HTTP。 
申請Let’s Encrypt證書
準備SSL ,在這邊HF是參考諾比中文提供的方式去設定的(原網址)。
首先先輸入以下指令 (XXXXX.com)請輸入你的域名,因為是透過你的域名去簽證)
sudo a2ensite XXXXX.com.conf
service apache2 reload
然後安裝Let's Encrypt
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache
替網站建立SSL證書
sudo certbot --apache -d XXXXX.com
設定途中會出現兩個選項(1) No Redirect 或 (2) Redirect 所有 HTTP 網頁至 HTTPS 
HF這邊是選擇(1) 
就這樣 Let’s Encrypt安裝成功了,可以去開啟網站看看是否已經出現綠色的鎖頭囉~



最後一個重點,因為 Let’s Encrypt簽證有效時間為90天,所以這邊要建議設定自動排程讓他更新
sudo vim crontab -e
 於檔案內加入以下代碼,代表每天的早上 6 時 00 執行自動更新:
00 6 * * * /usr/bin/certbot renew --quiet  
另外提醒一下如果沒有跑自動排程也可以輸入以下代碼重新簽證

sudo certbot --apache


如果您覺得HF寫得還不錯,可以透過以下來贊助HF唷~
幣別
Bitcoin(BTC)
錢包地址
3PqFZKa5if4566u7xctKhd8jh6ypBccEAL
幣別
Litecoin(LTE)
錢包地址
LfRQQDDfpnTAedUotv1LBPR7XnUsEqaCAe
幣別
Ethereum(ETH)
錢包地址
0x5955a215e1066875b0cbb4a284d60aa0c8abddf2
幣別
Zcash(ZEC)
錢包地址
t1VbdgDNZJooYYw3mTqJHQLA1PRELWX4cUq

當然如果你想幫HF挖礦的也是可以(疑?

留言

這個網誌中的熱門文章