1. 程式人生 > >一年多 Let’s Encrypt 的 SSL 證書使用有感

一年多 Let’s Encrypt 的 SSL 證書使用有感

一年多 Let’s Encrypt 的 SSL 證書使用有感
https://www.zhihu.com/search?type=content&q=Let's Encrypt
明月登樓
草根部落格站長 imydl.com 擅長伺服器部署、運維、網站建設等
又拍雲

話說我把站點 HTTPS 的主要動力其實就是因為 Let’s Encrypt 的免費 SSL 證書,在網上開始流行 HTTPS 的時候明月就開始關注了,因為之前明月一直是 DNS 劫持等等手段的“重度”受害者,甚至站點因為各種“劫持”遭到百度降權的懲罰,所以明月一直很關注網站安全方面的技術,HTTPS 可以說是明月很迫切需要的。

因為最早使用的是虛擬主機,實現 HTTPS 在當時幾乎是不可能的(那時候很多虛擬主機的面板都不支援 SSL 部署的),左思右想後果斷遷移至阿里雲 ECS 上,邊用邊學的運維實踐開始了,等到有了一定的基礎之後就開始考慮全部站點的 HTTPS 了,這時候其實已經關注 Let’s Encrypt 很久了都,當時選擇 Let’s Encrypt 主要就是因為 Let’s Encrypt 的 SSL 證書申請獲取方式比較適合自己的情況,加上後來又用上了 acme.sh 指令碼(可參考【Linux 下使用 acme.sh 申請和管理 Let’s Encrypt 證書】)後基本上是徹底的被 Let’s Encrypt 被征服了。

很多站長對 Let’s Encrypt 最大的詬病就是其 SSL 證書有效期只有 90 天,90 天后需要手動(這裡說“手動”其實不嚴謹了,現在通過指令碼基本上都是自動智慧續期了)的續期,甚至還有不少人說 Let’s Encrypt 的 SSL 證書獲取、申請方式雖然另類方便,但也讓各種釣魚網站、違法網站獲取使用 SSL 證書變的更方便了。其實持這些觀點的人都是沒有真正使用過 Let’s Encrypt 的,下面明月結合自己這一年多來使用 Let’s Encrypt 的經驗給大家闡述一下:

其實 Let’s Encrypt 的這種申請、獲取、續期方式明月感覺才是真正引領著未來 SSL 證書發展潮流,因為這種依託於伺服器端的 SSL 證書申請和獲取有一定的技術門檻,這就造成不適誰都可以隨便的就獲得網站 SSL 證書,加上是申請 SSL 證書的時候需要驗證伺服器端所有權和管理權,自然也就保證了 SSL 證書獲取途徑的唯一性和安全性,那怕上述都是虛假的在 90 天的時間裡肯定也會暴露這個站點是否合法等情況,只需要拒絕續期就可以了,這樣一來就將此類站點所帶來的危害降低到了一定的範圍時間段內,就算你是釣魚網站你最多也就是使用三個月而已,然後你就有可能無法獲取到 Let’s Encrypt 證書的續期了,甚至你的伺服器都會被鎖定遮蔽,再加上其他的技術手段鎖定所有人也不是不可能。這也是為啥 Let’s Encrypt 官方都宣佈過來釣魚網站申請 Let’s Encrypt 證書數量和次數由高到低的浮動變化,相對於那種付費或者免費有效期 1-3 年的 SSL 證書來說 Let’s Encrypt 證書這方面的優勢尤為明顯,可以說是免費 SSL 證書裡安全係數很高的 SSL 證書了。

至於很多站長們詬病的 90 天后需要“續期”這個,其實明月感覺沒有那麼麻煩,因為藉助第三方的工具,在伺服器端完全可以做到無人值守的自動續期,這一年以來明月都是這麼過來的,沒有出現過一次問題,唯一可能算是“麻煩”的就是使用 CDN 的時候需要在 CDN 後臺裡手動匯入 Let’s Encrypt 的 SSL 證書,這個問題真不是 Let’s Encrypt 的問題,目前來看也沒有很好的解決辦法,除非大家使用 CDN 自帶的 SSL 證書,這樣一來可能就會面臨伺服器端和 CDN 端使用的是不同的 SSL 證書,好在這樣的 HTTPS 主流瀏覽器都是支援的。其實 CDN 裡匯入 Let’s Encrypt 證書無非就是為了可以伺服器端、 CDN 層面都使用免費的 SSL 證書而已,免費的嘛就不要在意這些細節了。再說對於“折騰”型的部落格站長們來說,三個月的時間,折騰頻繁的話弄不好伺服器都恢復快照 N 次了都,又何必在乎 CDN 手動匯入 SSL 證書的“麻煩”呢?

在使用 Hexo 搭建部落格的時候,明月就發現國內的 coding 程式碼託管平臺的靜態網頁空間支援 Let’s Encrypt 證書申請和使用,據說現在 GitHub 也已經支援 Let’s Encrypt 證書了,所以未來看 CDN 平臺上支援 Let’s Encrypt 證書直接申請、獲取、續期也不遙遠了,至少明月直到又拍雲 CDN 就已經支援 Let’s Encrypt 證書的自動申請、獲取和使用了(說白了就是使用 Let’s Encrypt 的 SSL 證書在又拍雲 CDN 部署上可以單獨申請 Let’s Encrypt 來實現 CDN 層面的自動續期)。

綜上所述,明月一直以來都認為 Let’s Encrypt 是草根部落格站長們站點 SSL 證書的首選,單從現在各個主流瀏覽器對 Let’s Encrypt 證書的支援和相容情況就可以看出 Let’s Encrypt 在 SSL 業界的地位了,免費的同時又有極高的相容性、安全性不選擇 Let’s Encrypt 選擇啥呢?當然,土豪草根部落格站長們可以無視了,跟收費的 SSL 證書比較目前 Let’s Encrypt 還是有些欠缺的,雖然欠缺主要表現在“公信度”上,不過,隨著時間的推移和 SSL 的高普及率,Let’s Encrypt 在業界的地位一定會“水漲船高”的,到時候這些問題還能算是問題嗎?

閱讀材料:
iOS開發中的HTTPS :https://zhuanlan.zhihu.com/p/22749689

HTTPS系列乾貨(一):HTTPS 原理詳解 :https://zhuanlan.zhihu.com/p/27395037

一篇文章為你深度解析HTTPS 協議 https://zhuanlan.zhihu.com/p/25430542
永久免費的SSL證書 - Let’s Encrypt 證書部署 HTTPS 並自動續期 https://ubock.com/article/25