為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2016-12 文章編輯:小燈 瀏覽次數(shù):2509
快到年底了,估計(jì)很多人都在折騰這貨,其實(shí)HTTPS很早就出現(xiàn)了,只是一直像IPv6那樣,普及率不高。這次谷歌和蘋果兩大巨頭決定強(qiáng)推HTTPS,估計(jì)也是因?yàn)榘踩珕栴},畢竟有了太多“前車之鑒”,是時(shí)候該有所行動(dòng)了。
領(lǐng)袖的“振臂一呼”,當(dāng)然“應(yīng)者云集”,國內(nèi)各互聯(lián)網(wǎng)服務(wù)商、知名網(wǎng)站、包括草根站長(zhǎng)們,都紛紛跟進(jìn),陸續(xù)部署起了SSL證書,全面迎來了一波HTTPS升級(jí)浪潮。作為關(guān)注互聯(lián)網(wǎng)的我,喜歡嘗試新事物,所以趁著博客改版之際,也試了下,為了點(diǎn)亮那把小綠鎖,真是各種折騰,在此做個(gè)階段性小結(jié),分享下踩坑經(jīng)驗(yàn)吧。
HTTPS的安全基礎(chǔ)是SSL,因此加密內(nèi)容就需要配合SSL證書,目前國內(nèi)外都有廠商提供免費(fèi)版的SSL證書,下面就我知道的做個(gè)介紹吧:
這家目前是國外信譽(yù)最好、推薦度最高的,由Mozilla、思科、Akamai等組織發(fā)起,來頭不小。
證書時(shí)效:90天,到期可以手動(dòng)renew
部署教程:可以參考這篇,寫的非常詳細(xì)了。另外,下面評(píng)論里有推薦一個(gè)網(wǎng)站:https://certbot.eff.org/,也是基于官方的程序,但操作上要更簡(jiǎn)單些,我試了下,可以成功獲取到證書,這里就以CentOS 7 LNMP環(huán)境為例,大致命令如下(可訪問該網(wǎng)站獲取更多詳情):
a. 下載安裝程序
yum install certbot#下載安裝程序 certbot certonly#此處為只獲取證書
b. 然后會(huì)彈出圖形界面,按提示操作即可,切記網(wǎng)站根目錄路徑要寫正確,因?yàn)楹竺嬉鲵?yàn)證。
c. 這里坑就來了,可能會(huì)有童鞋和我一樣,所有設(shè)置都填寫無誤,但每次都提示404驗(yàn)證失敗,Why?后來查了下,發(fā)現(xiàn)是Nginx的鍋,默認(rèn)對(duì).開頭的訪問有阻擋,需要添加配置如下:
location ~ /.well-known { allow all; }
d. 這樣證書就順利下來了,一般會(huì)在/etc/letsencrypt/live/你的域名/下面,有4個(gè).pem文件。最后在nginx的配置里添加下ssl的內(nèi)容,我加的是這些:
listen 443 ssl; ssl_certificate /etc/letsencrypt/live/roubintech.com/fullchain.pem; #路徑要寫對(duì) ssl_certificate_key /etc/letsencrypt/live/roubintech.com/privkey.pem;#路徑要寫對(duì) 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天到期之后,可以手動(dòng)輸命令renew,網(wǎng)站上也有寫,運(yùn)行certbot renew --quiet
,renew后建議再跟上service nginx reload
命令。
這里放一起,是因?yàn)槟壳皣鴥?nèi)各家都是和賽門鐵克合作,發(fā)的他家證書,而且操作上也類似,都要驗(yàn)證域名等。而因?yàn)镈V SSL證書,是一張證書只能對(duì)應(yīng)一個(gè)域名(附送www前綴),所以申請(qǐng)前,建議先想好用哪個(gè)域名。
證書時(shí)效:1年
部署教程:參考下七牛官方的說明文檔吧,挺詳細(xì),就是CNAME的主機(jī)記錄填寫,記得把后面的主域名去掉。
如果是VPS、云主機(jī)、服務(wù)器等,可以使用上面申請(qǐng)的SSL證書直接部署,而像虛擬主機(jī)那種本身不支持HTTPS,或無法開啟443端口的網(wǎng)站,就可以使用CDN來“曲線救國”了。
阿里云/七牛/騰訊云都有自己的CDN,再配合上自家的證書,是極為方便的,但總體價(jià)格嘛,呵呵,仁者見仁吧,這里要介紹的是推薦度比較高的VeryCloud云分發(fā)(CDN)服務(wù),50G/月的免費(fèi)流量,夠用了。
部署教程:VeryCloud官方的幫助文檔,記得先上傳你的證書(七牛的證書只能用于自家服務(wù)),然后創(chuàng)建頻道,用主域名就好,原站點(diǎn)寫IP,回源用HTTP方式,因?yàn)槟憔W(wǎng)站本身不支持嘛(支持的請(qǐng)用HTTPS),然后按要求,到DNS管理的地方,為主域名添加一條CNAME,建議此時(shí)給WWW的記錄也加一條CNAME,這樣兩個(gè)都走CDN,然后A記錄就可以先暫停了。
這里我用的是七牛的云存儲(chǔ),支持圖片等HTTPS方式訪問,配合上七牛融合CDN,速度很快
部署教程:七牛官方文檔
因?yàn)榧铀儋Y源訪問的是七牛云存儲(chǔ),可能需要一個(gè)二級(jí)域名做解析,而且上HTTPS的話,同樣需要對(duì)應(yīng)的證書,略麻煩,其實(shí)還好,直接在七牛申請(qǐng)挺快的,當(dāng)然你不用擔(dān)心一個(gè)網(wǎng)站上了多張SSL證書會(huì)有問題(內(nèi)心是多想來一張wildcard SSL證書啊),有個(gè)東西叫SNI可以解決。
多說現(xiàn)在用的蠻多,但它對(duì)HTTPS的支持還不理想,目前第三方社交賬號(hào)的頭像、表情還不行,所以有時(shí)你會(huì)發(fā)現(xiàn)折騰半天,小鎖還是灰的,可能就是這個(gè)原因。
當(dāng)然解放方法也很多:
a. 頭像:不使用第三方社交賬戶的頭像,而是后臺(tái)重新上傳一個(gè)
b. 表情:咳咳,我是直接選擇不用表情啦,一是懶,二是覺得丑~
c. 換掉多說的js: 參考這篇,然后Github上還專門有個(gè)repository,也可以解決
d. 其他替代方案:暢言、網(wǎng)易云跟帖,我沒用過,據(jù)說都不錯(cuò)
目前就折騰了這么多,如有疑問,歡迎交流O(∩_∩)O
轉(zhuǎn)載請(qǐng)標(biāo)明本文地址