二話不說(shuō)先上圖:

是的挺峡,升級(jí)完之后得到的就上面幾把小綠鎖葵孤。當(dāng)然,只是幾個(gè)小站橱赠,如果看官誤解為大站的 https 架構(gòu)升級(jí)尤仍,抱歉了…
有必要這么折騰嗎?
先說(shuō) 2 則消息提提神:
- 2017 年 1 月 1 日蘋果 iOS 應(yīng)用推行 ATS 安全標(biāo)準(zhǔn)狭姨,將強(qiáng)制使用 HTTPS 安全連接宰啦;
- 谷歌 Chrome 將把所有的 HTTP 網(wǎng)站標(biāo)記為「不安全」

可見全站 HTTPS 化是大勢(shì)所趨。就算是小博客饼拍、小網(wǎng)站赡模,也不想被拍為「不安全」吧。于是师抄,在 2016 年的尾巴時(shí)漓柑,折騰了一把。
Https 證書
其實(shí)叨吮,更應(yīng)該說(shuō)「免費(fèi)」的 Https 證書更合適辆布。因?yàn)楦顿M(fèi)的證書其實(shí)很多,而我等小博主茶鉴,還是用用免費(fèi)的好了锋玲。可能大家都知道蛤铜,目前最有名的免費(fèi)證書就是 Let's Encrypt 了(另外一個(gè)免費(fèi)嫩絮、但有黑歷史的我就不說(shuō)了)

可以使用 Certbot 來(lái)自動(dòng)更新 Let's Encrypt 證書丛肢,服務(wù)器端我用的是 Ubuntu,直接照著官網(wǎng)教程就可以生成證書了:https://certbot.eff.org/#ubuntuxenial-nginx

有了證書之后剿干,就是如何應(yīng)用到網(wǎng)站中蜂怎,這個(gè)就要看大家具體是如何搭建、托管博客的置尔。我是用的 Nginx杠步,照著這里的步驟就可以了:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04
有了上面這 2 步,就完成 https 升級(jí)本身的在部分事情了榜轿∮募撸可能你并不知道,https 和 https 也是不同的谬盐,主要是安全級(jí)別上不一樣甸私。具體的,可以到一些測(cè)試網(wǎng)站上查查自己的 https 是什么級(jí)別飞傀,比如 https://www.ssllabs.com/ssltest/analyze.html 我的小站是 A-皇型,雖然可以再加把勁升級(jí)到 A+,想想 2/8 原則也就算了砸烦。

Https 與小綠鎖
做了上面的事后弃鸦,瀏覽器中并不一定會(huì)顯示可愛(ài)的小綠鎖。為什么幢痘?因?yàn)榫W(wǎng)站可以還引用了別的 http 資源唬格,比如 js、css颜说、圖片购岗、等等。必須全站資源均是 https脑沿,才會(huì)在瀏覽器地址顯示小綠鎖藕畔。
圖床搬家
好了马僻,來(lái)到遷移最麻煩的部分:圖床搬家庄拇。因?yàn)樽约旱牟┛鸵呀?jīng)有好幾年了,搬家 N 次韭邓,還由 WordPress 遷移至 Markdown (Hexo 引擎 + Next 主題)措近,其中混雜著又拍云、新浪微博圖床女淑、七牛瞭郑、一般圖片、等各種來(lái)源的圖片鸭你,想把這些圖片全找出來(lái)屈张、重新上傳至支持 https 的圖床擒权、更新文檔中的鏈接,還是挺絕望的阁谆。
不管怎樣碳抄,已經(jīng)搞定了,來(lái)回顧下我的方案吧场绿。
圖床選擇
國(guó)內(nèi)

國(guó)內(nèi)選的是 七牛
另外一個(gè)強(qiáng)勁的候選是阿里云 OSS剖效,因?yàn)槲铱偸怯X(jué)得阿里云 OSS 比七牛快(之前的一些感性經(jīng)驗(yàn)焰盗,并無(wú)實(shí)測(cè)數(shù)據(jù)璧尸,況且這和網(wǎng)絡(luò)情況嚴(yán)重相關(guān),在你那快熬拒、而你的用戶不一定快爷光,很難有權(quán)威的測(cè)試數(shù)據(jù))
最后選擇七牛最大的原因是:錢,也就是價(jià)格澎粟。阿里云 OSS 的流量?jī)r(jià)格大概是七牛的 2 倍瞎颗,即使買流量包也比七牛稍貴些。具體的捌议,大家可以看下面的官網(wǎng)鏈接:
需要說(shuō)明的是哼拔,七牛有所謂的免費(fèi)流量,但這免費(fèi)流量只適用于 http 流量瓣颅、不適用于 https 流量倦逐,算是個(gè)小坑 + 雞賊吧。
確定圖床后宫补,就在七牛上新創(chuàng)建了資源檬姥。并沒(méi)有使用自己域名的 https 鏈接,因?yàn)闆](méi)有備案(備案好可怕…)粉怕,直接使用了七牛的 https 二級(jí)鏈接健民,如 https://xxxx.qnssl.com
國(guó)外

國(guó)外選的是 Flickr
存儲(chǔ)方面,F(xiàn)lickr 有 1T 空間贫贝,絕對(duì)夠用了秉犹。
速度方面,之前在 http://www.17ce.com/ 上測(cè)試了下稚晚,即使是在國(guó)內(nèi)崇堵,F(xiàn)lickr 的訪問(wèn)速度尚可、比 Imgur 快客燕;國(guó)外應(yīng)該也沒(méi)問(wèn)題鸳劳。
于是,也就懶得再去用 Amazon S3 之類的專業(yè)圖床也搓,直接定 Flickr 了赏廓,并且鏈接還是支持 https 的涵紊。
統(tǒng)一圖片鏈接
這有什么說(shuō)的呢?
主要是為可能的再次搬家埋伏筆幔摸。如果直接使用七牛的二級(jí)鏈接( 如 https://xxx.qnss.com )栖袋,那么下次如果需要搬家,就要把之前文檔中的鏈接全部更新抚太,或者使用 Nginx 相關(guān)的代理塘幅、跳轉(zhuǎn)機(jī)制,總是有些麻煩尿贫,所以用了一個(gè)自己的域名進(jìn)行跳轉(zhuǎn)电媳。
方法就是,先確定一個(gè)固定的圖片域名:https://p.ilib.io 然后將其重定向至 https://xxxx.qnss.com 具體的庆亡,就是在 Nginx 中配置:
rewrite ^/cn/(.*)$ https://xxx.qnssl.com/$1;
這樣匾乓,訪問(wèn)如 https://p.ilib.io/cn/abc.jpg 時(shí),會(huì)重定向至 https://xxx.qnssl.com/abc.jpg
好處是:
- 靈活又谋,之后如果再次搬家拼缝,只要修改這里的配置即可;
- 另外彰亥,還可以為國(guó)外圖床配置對(duì)應(yīng)的跳轉(zhuǎn)咧七。
壞處是:
- 慢了一點(diǎn),因?yàn)橐噙M(jìn)行一次 p.ilib.io 的域名解析任斋。
- 不過(guò)继阻,這一方案也可以用域名解析的顯式 URL 跳轉(zhuǎn)進(jìn)行改進(jìn),會(huì)快很多废酷。只是我現(xiàn)在用的是 DNSPod 解析域名瘟檩,需要 30 天后才能進(jìn)行顯式 URL 跳轉(zhuǎn),到時(shí)再更新吧澈蟆。

已有圖片搬家
新圖床確定了墨辛,接下來(lái)就是要把已有的 Markdown 文件中的圖片遷移至新圖床。
這事怎么辦呢趴俘?
為了這事睹簇,我專門做了個(gè) App: iPic Mover,可以選擇 Markdown 所在目錄哮幢,一鍵遷移 Markdown 中所有圖片至新圖床带膀,具體看圖:
插入新圖片
到這里,https 證書配置好了橙垢、已有圖片也搬家了,已經(jīng)可以看到可愛(ài)的小綠鎖了伦糯。那么柜某,之后新的圖片嗽元,該怎么插入到 Markdown 文件中呢?畢竟上面說(shuō)了喂击,又是七牛剂癌、又是 Flickr 的,直接插圖還是挺麻煩的翰绊。
還好佩谷,有了 iPic,可以一鍵上傳圖片至圖床监嗜、生成 Markdown 鏈接谐檀。

曬曬我的圖床吧(有些是測(cè)試用):

尾巴
說(shuō)說(shuō)博客吧。
折騰這么多裁奇,就為了小綠鎖桐猬,值嗎?尤其刽肠,現(xiàn)在還有人寫博客嗎溃肪?還需要專門搞個(gè)圖床搬家的工具嗎?
誠(chéng)然音五,現(xiàn)在是快消費(fèi)時(shí)代惫撰,大家的注意力是渙散的,看個(gè)搞笑視頻都要快進(jìn)躺涝,更別說(shuō)讀長(zhǎng)文润绎,更更別說(shuō)寫長(zhǎng)文了,更更更別說(shuō)為文章配個(gè)合適的圖诞挨。
但莉撇,反過(guò)來(lái)說(shuō),大家對(duì)信息的渴求是一貫的惶傻,在網(wǎng)上搜索信息棍郎,都想能最快的得到權(quán)威的、組織優(yōu)良的答案银室。尤其是程序員這個(gè)行當(dāng)涂佃,簡(jiǎn)直是面向 Google 編程。而很多 Google 給出的答案蜈敢,都是一些優(yōu)秀的博客辜荠。
所以,我相信博客依然會(huì)有其一席之地抓狭;而寫博客的人伯病,值得被尊重、被關(guān)注否过,值得擁有趁手的工具午笛。