Let’s Encrypt Wildcard Certificate

全網域通用憑證

Let’s Encrypt 從原本預計 1 月預計上線的全網域通用憑證 (Wildcard Certificate) 上線日期,不斷推遲,終於在最近上線了。

已經使用 Let’s Encrypt 為自己主機網站提供憑證很久了,以往每建立一個子網域就需要為他產生一筆新的憑證資料,雖然也不是什麼麻煩事,但是一旦數量多了起來,收到的定期更新通知也是不少。

最近為了備份需要,入手了一台 2 Bay 的 NAS,因為系統版本有點舊,要直接安裝 Certbot 有難度,因而研究起從其他主機產生 Let’s Encrypt 憑證的可能性,才知道 Let’s Encrypt 的 Wildcard 憑證,而且應該可以滿足我的需求,原本預計 1 月上線,卻已經推遲幾次,沒想到 3/14 就讓我盼到了。

今天終於有時間來試試看,順道也分享一下作法。


初次安裝

Let’s Encrypt 提供了 API 進行憑證要求及驗證網域擁有權,網路上已經有不少終端工具可以協助完成這些步驟,這篇文章將會使用 Certbot 這個最廣為使用的工具來取得 Wildcard 憑證。

要取得 Wildcard 憑證,必須使用支援 ACMEv2 (Automated Certificate Management Environment) 的終端工具,以 Certbot 為例,需要使用的版本為 0.22.0 以上,

已經有使用 Certbot 工具的管理員,可以跳過此步驟

下載 certbot

我用來取得 Certbot 的 Ubuntu 16.04 標準的安裝套件目前只有到 0.21.1 ,因此不應使用 apt-get install 來取得,我們直接從 eff.org 網站下載


要求驗證並取得憑證

接下來我要開始對我的 amou.ro 網域建立 Wildcard 憑證

這裡有個重要參數用來指定使用支援 ACMEv2 的憑證主機,這樣才能順利取得 Wildcard 憑證。

-- server https://acme-v02.api.letsencrypt.org/directory

在指定網域的時候,就使用 *.amou.ro 代入 -d 參數當中。如果主網域 (amou.ro) 也要的話,得另外指定。由於我只需要建立好憑證之後,再移到我的 NAS 去使用,因此採用 DNS 驗證。

註冊 Email 信箱,供緊急更新與通知使用

第一次進入這個憑證主機,會邀請你先提供 Email 註冊,同意服務條款,並且詢問你是否願意收到 EFF 的來信。

接下來就會開始驗證網域產生憑證了,Certbot 會指示你要完成驗證所需的步驟。

應該會在要求你建立一筆網域的 TXT 資料的地方停下,請依照你的網域主機所提供的方式建立這樣的紀錄

建立後查詢一下

$ dig _acme-challenge.amou.ro txt

查詢成功就可以回到 Certbot 繼續下一步。最終便能夠看見憑證成功建立的訊息如下圖

*注意

  • 驗證的過程可能會不只一次要求 TXT 的驗證碼,這時候必須要再次修改 TXT 資料,確定可以查詢到之後,再繼續進行下一步,同時輸入兩筆 TXT 紀錄可是會驗證失敗的。
  • 我原本有建立 CAA 資料,驗證過程當中需要先刪除掉

成功安裝好憑證之後看一下 :)