Let's Encrypt Wildcard 申請流程

栏目: 服务器 · 发布时间: 5年前

内容简介:如果你不知道這是什麼,請參考我之前寫的在申請 Wildcard 憑證之前,請先確認你的如果你之前有申請過憑證,請先確認到期日:
Let's Encrypt Wildcard 申請流程

Let's Encrypt

Let's Encrypt 在去年 (2018) 年 3 月時宣佈了 ACMEv2 版本及子網域萬用字元的支援,這樣就不用對所有子網域申請各別的憑證,只要申請一個就可以了。

如果你不知道這是什麼,請參考我之前寫的 HTTPS 連線,使用 Let's Encrypt

在申請 Wildcard 憑證之前,請先確認你的 Certbot 是最新版本 (不能低於 0.22.0 版):

certbot --version
# 顯示 certbot 0.31.0

如果你之前有申請過憑證,請先確認到期日:

certbot certificates
# 會列出所有憑證及到期日

注意!到期日必須少於 30 天才能再次申請。

取得 Wildcard 憑證

請輸入以下 shell 指令:

certbot certonly --manual --agree-tos \
-d "*.你的網域.com" \
-d 你的網域.com \
--email 你的電子郵件信箱 \
--preferred-challenges dns \
--manual-public-ip-logging-ok \
--server https://acme-v02.api.letsencrypt.org/directory \
  • --manual:手動安裝憑證。
  • --agree-to:同意 ACME 用戶協議,不指定的話會在執行時問你。
  • -d 接上要申請的網域:萬用字元(*)是給子網域用,父網域要單獨申請。
  • --email:接收到期通知的 email。
  • --preferred-challenges dns:使用 DNS 方式申請(Wildcard 只能用此方式)。
  • --manual-public-ip-logging-ok:自動接受「詢問是否記錄 IP」,不指定的話會在執行時問你。
  • --server:使用 Let's Encrypt ACME2 的伺服器 (必須使用 v2 伺服器)。

註:倒斜線是 shell 指令的換行符號,避免指令太長不容易閱讀。

執行後會得到一個網址及一段 hash code,它們是一對的,記得現在不要按到 Enter

_acme-challenge.你的網域.com
一段 hash code

注意!有幾個 -d 就會有幾組 hash code,一次只會顯示一組。

接下來請到你的 DNS 上去增加 TXT 紀錄,名稱為 _acme-challenge ,類型為 TXT ,值為 那段 hash code

_acme-challenge  TXT  它給的 hash code

等一陣子 (可能少於一分鐘,也可能比這個久,看你的 DNS),確認 _acme-challenge 可以連上了才回到 certbot 按繼續,可以使用以下指令來確認:

dig TXT _acme-challenge.你的網域.com

註: dig 是網域名稱指令,請確認有安裝,或用 nslookup

看到以下內容 (hash code 有出現) 就可以回去按 Enter

;; ANSWER SECTION:
_acme-challenge.你的網域.com. 1799 IN TXT 它給的 hash code

如果你有多個 -d ,這時會出現第二組 hash code,請重覆以上動作,TXT 的名稱可以重覆。

當你按下最後一個 Enter 後就完成了,結果會顯示你的憑證被安裝在哪裡及到期日。記得把 DNS 上的 TXT 紀錄刪掉。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/你的網域.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/你的網域.com/privkey.pem
   Your cert will expire on 2019-05-26. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"

最後就是把它加到你的伺服器的 SSL 設定,這樣就完成了。

ssl_certificate /etc/letsencrypt/live/你的網域.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的網域.com/privkey.pem;

記得讓伺服器重新載入

nginx -s reload

下次到期時,可以使用以下指令來更新:

certbot renew

註:我也是第一次使用,不確定 renew 時需不需要重做一次 DNS 的驗證,如果需要,就必須重做一次上面的動作;如果不需要,可以直接加入排程器,定時更新。

刪除不要的憑證

如果你像我一樣,之前已經申請了好幾個子網域的憑證,現在這些都不需要了,可以將它們刪除。先來看看之前申請了哪些憑證:

ls /etc/letsencrypt/live

列出的目錄名稱即是等下要用到的 --cert-name 參數的值:

certbot delete --cert-name 子網域.網域.com

執行後就會刪除該子網域的所有資料;刪除指令執行的實際動作,其實只是去刪除 3 個目錄下的網域目錄,所以你也可以手動刪除:

rm -rf /etc/letsencrypt/archive/網域名稱/
rm -rf /etc/letsencrypt/live/網域名稱/
rm -rf /etc/letsencrypt/renewal/網域名稱.conf

以上所述就是小编给大家介绍的《Let's Encrypt Wildcard 申請流程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js实战

Node.js实战

[美] Mike Cantelon、[美] TJ Holowaychuk、[美] Nathan Rajlich / 吴海星 / 人民邮电出版社 / 2014-5 / 69.00元

服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。 本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀......一起来看看 《Node.js实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器