Let's encrypt 通配域名(二級, 三級)

概述

Let's encrypt 申請通配域名的方式以下:web

certbot certonly --manual \
-d '*.exampple.com' \
--agree-tos \
--email domain@example.com \
--server https://acme-v02.api.letsencrypt.org/directory

上面是通配的子域名, 只能是 a.example.com形式, 不能是 a.b.example.com 形式. 要使用更下級的子域有幾個要點:api

  • 通配域名必須使用--manual參數, --webroot等其餘參數是互斥的,不能同時使用.
    --manual表示經過DNS的TXT記錄進行驗證, --webroot經過Web服務器的訪問進行驗證.
  • 須要在DNS中添加 b.example.com 的A記錄, 這樣在 Let's encrypt 發起挑戰的時候才能解析到這個域名.
  • 須要添加TXT記錄 _acme-challenge.b.example.com
    設置了TXT記錄後先別急着回車. 先手工驗證一下TXT記錄有咩有生效瀏覽器

    dig -t txt _acme-challenge.b.example.com

兩個API接口

上面一個是正式的. 簽發的證書是瀏覽器信任的, 下面一個僅用於測試. 咱們能夠看到它的名字是Fake LE Root X1服務器

Fake 的意思本身百度.

clipboard.png

安裝certbot命令行

進入 https://certbot.eff.org/, 選擇你的系統, 頁面會自動輸出對應的各類系統的安裝方式.dom

clipboard.png

Ubuntu 16.04 的安裝命令以下:測試

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot

流水帳

1.建立 b.example.com 的A記錄
2.執行命令申請通配域名(三級域名)spa

certbot certonly --manual \
-d '*.b.exampple.com' \
--agree-tos \
--email domain@example.com \
--server https://acme-v02.api.letsencrypt.org/directory

3.輸入兩次Y, 確認了兩次, 終端輸出以下形式的東西, 別敲回車命令行

_acme-challenge.b.example.com with the following value:

ZaUsqkBE109SZMDZheM3UUXA-iw6dukTsixXoG_QrSE

4.建立TXT記錄
5.驗證TXT記錄是否生效code

dig -t txt _acme-challenge.b.example.com

6.TXT生效後敲回車進行DNS的TXT驗證server

成功後

你會看到簽發給你的證書的域名是這樣的 *.b.example.com, 成功以後, 就能夠隨便添加你的三級域名了.

x.b.example.com
y.b.example.com
z.b.example.com

clipboard.png

注意事項

必定注意使用測試API接口先進行測試. Let's encrypt 失敗次數過多會屏蔽你一段時間, 防止濫用.

結語

總的來講, 通配域名減小了爲不一樣的子域名申請不一樣證書的麻煩. 同時申請過程也比配置Web服務器的驗證方式要簡單. 只須要修改DNS相關的解析記錄就能夠了. 比之前方便了很多.

相關文章
相關標籤/搜索