SSL證書申請與配置

快到年末了,估計不少人都在折騰這貨,其實HTTPS很早就出現了,只是一直像IPv6那樣,普及率不高。此次谷歌和蘋果兩大巨頭決定強推HTTPS,估計也是由於安全問題,畢竟有了太多「前車可鑑」,是時候該有所行動了。html

領袖的「振臂一呼」,固然「應者雲集」,國內各互聯網服務商、知名網站、包括草根站長們,都紛紛跟進,陸續部署起了SSL證書,全面迎來了一波HTTPS升級浪潮。做爲關注互聯網的我,喜歡嘗試新事物,因此趁着博客改版之際,也試了下,爲了點亮那把小綠鎖,真是各類折騰,在此作個階段性小結,分享下踩坑經驗吧。nginx

HTTPS的安全基礎是SSL,所以加密內容就須要配合SSL證書,目前國內外都有廠商提供免費版的SSL證書,下面就我知道的作個介紹吧:git

1. Let's Encrypt

這家目前是國外信譽最好、推薦度最高的,由Mozilla、思科、Akamai等組織發起,來頭不小。github

證書時效:90天,到期能夠手動renew七牛雲存儲

部署教程:能夠參考這篇,寫的很是詳細了。另外,下面評論裏有推薦一個網站:https://certbot.eff.org/,也是基於官方的程序,但操做上要更簡單些,我試了下,能夠成功獲取到證書,這裏就以CentOS 7 LNMP環境爲例,大體命令以下(可訪問該網站獲取更多詳情):安全

a. 下載安裝程序bash

yum install certbot  #下載安裝程序 certbot certonly #此處爲只獲取證書

b. 而後會彈出圖形界面,按提示操做便可,切記網站根目錄路徑要寫正確,由於後面要作驗證。服務器

c. 這裏坑就來了,可能會有童鞋和我同樣,全部設置都填寫無誤,但每次都提示404驗證失敗,Why?後來查了下,發現是Nginx的鍋,默認對.開頭的訪問有阻擋,須要添加配置以下:session

location ~ /.well-known {
  allow all;
}

d. 這樣證書就順利下來了,通常會在/etc/letsencrypt/live/你的域名/下面,有4個.pem文件。最後在nginx的配置裏添加下ssl的內容,我加的是這些:網站

listen 443 ssl;  
    ssl_certificate /etc/letsencrypt/live/roubintech.com/fullchain.pem;   #路徑要寫對 ssl_certificate_key /etc/letsencrypt/live/roubintech.com/privkey.pem; #路徑要寫對 ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m;

e. 90天到期以後,能夠手動輸命令renew,網站上也有寫,運行certbot renew --quiet,renew後建議再跟上service nginx reload命令。

2. 阿里雲/七牛/騰訊雲SSL證書

這裏放一塊兒,是由於目前國內各家都是和賽門鐵克合做,發的他家證書,並且操做上也相似,都要驗證域名等。而由於DV SSL證書,是一張證書只能對應一個域名(附送www前綴),因此申請前,建議先想好用哪一個域名。

證書時效:1年

部署教程:參考下七牛官方的說明文檔吧,挺詳細,就是CNAME的主機記錄填寫,記得把後面的主域名去掉。

3. 使用CDN部署HTTPS

若是是VPS、雲主機、服務器等,可使用上面申請的SSL證書直接部署,而像虛擬主機那種自己不支持HTTPS,或沒法開啓443端口的網站,就可使用CDN來「曲線救國」了。
阿里雲/七牛/騰訊雲都有本身的CDN,再配合上自家的證書,是極爲方便的,但整體價格嘛,呵呵,仁者見仁吧,這裏要介紹的是推薦度比較高的VeryCloud雲分發(CDN)服務,50G/月的免費流量,夠用了。

部署教程:VeryCloud官方的幫助文檔,記得先上傳你的證書(七牛的證書只能用於自家服務),而後建立頻道,用主域名就好,原站點寫IP,回源用HTTP方式,由於你網站自己不支持嘛(支持的請用HTTPS),而後按要求,到DNS管理的地方,爲主域名添加一條CNAME,建議此時給WWW的記錄也加一條CNAME,這樣兩個都走CDN,而後A記錄就能夠先暫停了。

4. 圖片等多媒體資源的HTTPS化

這裏我用的是七牛的雲存儲,支持圖片等HTTPS方式訪問,配合上七牛融合CDN,速度很快

部署教程:七牛官方文檔

由於加速資源訪問的是七牛雲存儲,可能須要一個二級域名作解析,並且上HTTPS的話,一樣須要對應的證書,略麻煩,其實還好,直接在七牛申請挺快的,固然你不用擔憂一個網站上了多張SSL證書會有問題(心裏是多想來一張wildcard SSL證書啊),有個東西叫SNI能夠解決。

5. 多說頭像、表情的HTTPS問題

多說如今用的蠻多,但它對HTTPS的支持還不理想,目前第三方社交帳號的頭像、表情還不行,因此有時你會發現折騰半天,小鎖仍是灰的,可能就是這個緣由。

固然解放方法也不少:

a. 頭像:不使用第三方社交帳戶的頭像,而是後臺從新上傳一個

b. 表情:咳咳,我是直接選擇不用表情啦,一是懶,二是以爲醜~

c. 換掉多說的js: 參考這篇,而後Github上還專門有個repository,也能夠解決

d. 其餘替代方案:暢言網易雲跟帖,我沒用過,聽說都不錯

目前就折騰了這麼多,若有疑問,歡迎交流O(∩_∩)O

相關文章
相關標籤/搜索