Let's Encrypt

現階段網絡安全愈來愈應該獲得重視,各個階段的網絡劫持愈來愈嚴重了。微博、簡書等各個比較主流的網站天天都要遭遇無數次的運營商劫持,而解決辦法不是去找運營商扯皮,而是從自身開始全面部署HTTPS。HTTPS 經過 TLS 層和證書機制提供了內容加密、身份認證和數據完整性三大功能,能夠有效防止數據被查看或篡改,以及防止中間人冒充。Let’s Encrypt 是由 ISRG 提供的免費 SSL 項目,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等組織發起,如今已經獲得 Google、Facebook 等大公司的支持和贊助,存在的 意義就是爲了推進 HTTPS 的發展,目的就是向網站免費簽發和管理證書。python

準備

在部署以前,要首先把域名解析到你的服務器對應的 IP 上面,而且要測試能夠能夠 ping 通,由於以後的自動部署過程會經過這個方式來驗證域名的全部權。這裏最常常碰到的問題就是:nginx

DNS problem: NXDOMAIN looking up A for www.xxx.com

這個問題的主要緣由通常都是出如今 DNS 的解析上面的,可是我在部署的過程當中發現本地機器能夠 ping 的通,也能夠正常訪問,但就是在服務器上 ping 不通,這時候能夠去看看域名解析的線路。若是是阿里雲的話建議直接默認便可,選擇單一的線路有可能會出現這個問題。安全

安裝 Certbot

網絡上有不少民間開發的一鍵部署工具教程,其實說的都是良莠不齊。其實徹底能夠經過官方提供的部署工具,絕對是最方便快捷的。Let's Encrypt 官方推薦使用 Certbot 來一鍵部署,咱們首先要安裝一下,這裏以 Ubuntu16.04 爲操做系統, Nginx 爲 Web 服務器:服務器

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

這樣就會安裝一個 certbot 的工具,這個工具主要用來申請證書、自動部署以及往後的續約使用。網絡

開始

Certbot 支持不少的操做系統和 Web 服務器,固然也有支持 Nginx 的,它提供了兩種方式來部署,其實都差很少。工具

sudo certbot --nginx

運行命令後會讓你選擇一個須要配置證書的域名,根據數字選擇便可:測試

而後會詢問你是否要把 HTTP 的請求都跳轉到 HTTPS :網站

運行這個命令後,將會獲得一個證書給你,而且 Certbot 會自動編輯你的 Nginx 配置來保證能夠正常使用。固然還能夠手動來:阿里雲

sudo certbot --nginx certonly

這個命令會幫你生成證書,而且保存下來,以後你就能夠拿着證書自行去配置 Nginx 了。加密

自動續訂

Let's Encrypt 申請的證書默認有效期是 90 天,在到期的前一個月是能夠進行續訂的。並且 Certbot 很人性化的附帶一個 cron 做業,在到期以前會自動更新您的證書。咱們能夠經過運行如下命令來測試證書的自動續訂:

sudo certbot renew --dry-run

該命令只是測試是否能夠續約而且生成證書,可是並不會替換掉實際的證書,等咱們測試確承認行後,就能夠去掉--dry-run參數而且把命令加入系統的定時任務中了。

@monthly root /usr/bin/certbot renew

歡迎關個人我的公衆號:左手代碼

相關文章
相關標籤/搜索