自從開站以來,我之前寫的《替 IIS 取得免費 SSL 憑證》一篇一直都是點閱率最高的文章,所以看起來讀者中對於這方面的需求還不小。剛好最近公司有一個專案是要部署在 Linode 上頭,而 Linode 因為是 VPS,上面的一切都得自己設定,也包括 SSL 在內,所以這邊我也順便研究了一下如何取得憑證的方法。我們採用的架構是 Ubuntu + Nginx 的組合,而用不了多久就找到了 Certbot 這套工具可以一鍵搞定所有的 SSL 設定;事實上 Certbot 確實也是 Let’s Encrypt 最推薦的 ACME 客戶端,而就我這次的使用經驗,我不得不說它真的整合得很強。
根據 Certbot 的官網,它除了 Nginx 之外也支援 Apache 等伺服器,而且針對各種作業系統都有詳盡的安裝說明;是否在每一種情境之下用起來都像 Ubuntu + Nginx 那麼簡單我就不曉得了,但是至少在我的用例之中那真的是簡單得讓人傻眼。當然這個「簡單」有一個大前提是你要先裝好了 Nginx、設定好網域並啟動伺服器,使得至少用 HTTP 連到你的站台是會通的;這點沒問題了之後剩下的就可以都交給 Certbot 了。
首先是安裝;說明文件中說要先裝 snapd 並且更新至最新版本,不過我打指令下去發現我的系統是已經裝好了,所以那步驟我就跳過了。再來就是安裝 Certbot 本身:
sudo snap install --classic certbot
然後說明文件說要打這一行來建立一個連結,我也不太懂其中道理,反正打了再說。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
然後就是黑科技的部份了。下面這一行打下去剩下的事情就全部自動搞定:
sudo certbot --nginx
這一行打下去裡面全自動做好的事情可多了,首先它會去爬你的 Nginx 設定檔看看裡面寫了哪些網域的站台,然後自己連到 Let’s Encrypt 去幫這些網域申請憑證,並且自動幫你通過網域驗證、儲存申請好的憑證、再幫你改寫設定檔把憑證填上去,並且順便幫你寫了 HTTP 轉址 HTTPS 的設定語法進去。差不多想得到的步驟它都全部自己包辦了!所以上面那一行打完了之後,等程式跑完,馬上重新連到站台就可以看到鎖頭出現了!
當然,Certbot 也一樣會在憑證三個月快要到期的時候自動幫你更新喔!
留言