幫 Ubuntu 系統的 VPS 網站申請 Let's Encrypt 免費的 SSL 證書

Let's Encrypt 是最近很熱門的 SSL Certificate(證書)供應商。有了 SSL 證書,網站就可以使用 HTTPS 加密瀏覽。那為什麼他熱門呢?在一連串 private beta 測試後,最近終於進入開放測試。簡單說就是:因為他免費!
不過千萬不要因為免費就小看他,Let's Encrypt 是由 EFF、Mozilla、Cisco、Akamai、IdenTrust、史丹佛法學院和密西根大學等資助網際網路安全研究組織(Internet Security Research Group )所創立的認證專案,主要的業務是提供免費的 SSL 證書,讓各網站可以使用 HTTPS 加密傳輸。
使用 https 加密瀏覽有什麼好處呢?瀏覽網站的朋友可以獲得更安全的瀏覽環境,尤其最近綁架病毒這麼恐怖,隨便點個廣告都可能會中獎;持有網站的人的好處就是網站不會被輕易的被綁票、SQL 注入搞到。(拜託高手放過本站,這台主機沒什麼內容......)那為什麼之前不用?因為除自己簽發的以外,買 SSL 憑證是要錢的呀。XD
部屬 SSL 主機環境:
- 主機是用很便宜的 Banwagon VPS,安裝 ubuntu 14.04 lts 作業系統。
- 工作環境是採用 OneinStack 一鍵安裝 LNMP,PHP 版本:7.0,Nginx 版本 1.9.9,MySQL:5.6.x
接下來就開始動手做吧!
一、安裝 Let's Encrypt 套件
網路上有人寫好不用安裝 Git 的方法,不過我覺得還是安裝一下以後更新或著有麼變動比較方便,用 SSH client 登入你的主機後輸入:
apt-get update apt-get install -y git git clone https://github.com/letsencrypt/letsencrypt
安裝好以後就可以輸入參數,正式開始取得證書。
cd letsencrypt sudo -s service nginx stop ./letsencrypt-auto certonly --email Email信箱 -d 虛擬網站1 -d 虛擬網站2 --webroot -w 網站目錄 --agree-tos
其中第三行要替換得就是你的「Email信箱」(雖然他不會寄信給你驗證,不過還是填真的吧!)、虛擬網站(virtualhost),有多個虛擬網站就用「-d 虛擬網站來分開」,和你的「網站目錄」原始位置。
虛擬網站那邊不管有幾個都要一個、一個加,他不支援通配符號如:*.kreen.org,最後「--agree-tos」是跳過使用者協議,反正我想除了個別有興趣的,應該不會有人真的去翻來看。XD
以我自己為例子:
./letsencrypt-auto certonly --email [email protected] -d kreen.org -d www.kreen.org --webroot -w /root/wwwroot/kreen.org/ --agree-tos
安裝成功結果會如下圖:
成功以後 Let's Encrypt 生成的免費 SSL 存根證書會保存在:/etc/letsencrypt/live/虛擬網站
,並會生成四個文件:
二、調整 Nginx 的設定
接下來要調整 Nginx 的設定文件,讓 Nginx 知道你的 SSL 存根證書在哪裡,用 vim 打開 Nginx 的設定檔:
vim /usr/local/nginx/conf/vhost/網域.conf
然後在裡面添加下面 erver 下面三行就行了:
erver { listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/kreen.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/kreen.org/privkey.pem;
接著在重新啟動 Nginx 就大功告成了~
service nginx restart
如果成功的話,用瀏覽器打開網頁就可以看到網址前面的小綠鎖了:
三、證書的使用期限
Let's Encrypt 免費 SSL 證書有效期是 90 天,也就是每三個月你就得續簽一次。續簽的時候,並不需要重新來一次,只要連到 VPS 主機,把以下參數在給一次即可:
cd letsencrypt ./letsencrypt-auto certonly --email [email protected] -d kreen.org -d www.kreen.org --webroot -w /root/wwwroot/kreen.org/ --agree-tos
搞了半天才發現是使用 Cloudflare 這家免費 cdn 造成的(網路上也有人反應),在沒別家免費 CDN 支援 SSL 下,我只好自己到 Cloudflare 網站手動暫停快取,再連上自己主機複製貼上指令碼更新了。有更好的辦法歡迎告訴我~
How It Works:https://letsencrypt.org/howitworks/