讓 Certbot 使用 DNS 驗證來獲得憑證

前言廢話

由於目前各大搜尋引擎對支援 HTTPS 的網站能有很大的加分效果,因此我認為 SSL 是建站很重要的一環。Certbot 是一款可以利用 Let’s Encrypt 來獲得免費憑證的輔助工具,他可以在 Linux 上安裝,並幫你取得憑證。

不論你因為什麼原因需要憑證,你大部分都會遇到類似 HTTP、DNS 這種的驗證方式。

HTTP 就是將一個檔案放置於網站上,來證明你對這個網站有實質操控權。

而 DNS 則是在 DNS 上新增 TXT 紀錄,來證明你對此網域有實質操控權,所以 DNS 驗證也可以獲得 Wildcard 的憑證(如:*.cre0809.com)。

發文契機

今天在為一個我的網站產生憑證,但由於這個網站已經上軌道了,不方便隨意下線。且 Certbot 現在提供的三種方式(下圖)對我來說都比較不方便一些。

001.jpg

而我又想到,在我高中的時候是使用 DNS 驗證的方式來獲得憑證,這對我來說相對容易很多,因此我會將方法在下方講解。

安裝 Certbot

安裝 Snap

sudo apt-get install -y snapd

確定及更新 Snap

sudo snap install core; sudo snap refresh core

安裝 Certbot

sudo snap install --classic certbot

連結 Certbot 指令

sudo ln -s /snap/bin/certbot /usr/bin/certbot

使用 DNS 驗證

重頭戲來了,接個我們要透過指令要求 Certbot 讓我們用 DNS 驗證我們的網域。

記得將指令中的 your.example.com 改成你的網域!

sudo certbot certonly --manual --preferred-challenges dns -d "your.example.com"

你應該就會看到這樣的畫面,這時候我們就要到 DNS 上新增 TXT 紀錄啦!

002.jpg

按照他的要求,在 DNS 上新增一筆 TXT 紀錄

003.jpg

完成之後,回到 SSH 上按一下 Enter,你的憑證就頒發完成啦!他會跟你說你的憑證存放在哪裡。

004.jpg

在最後,你也可以回到 DNS 上,將剛剛新增的那筆紀錄刪除。

結語

對我來說,用 DNS 驗證是比 HTTP 驗證還要更簡單的方式,不過這就因人而異啦,說不定有些人不這麼認為。

而這篇文章也是我個人想要紀錄這個步驟,這樣我日後自己參考這篇就可以了!