申請Let’s Encrypt萬用字元HTTPS證書(certbot版)

weixin_34146805發表於2018-03-16

Let’s Encrypt 釋出的 ACME v2 現已正式支援萬用字元證書,接下來將為大家介紹怎樣申請,Let’s go.

注 本教程是在centos 7下操作的,其他Linux系統大同小異。

1.獲取certbot-auto

# 下載
wget https://dl.eff.org/certbot-auto

# 設為可執行許可權
chmod a+x certbot-auto

2.開始申請證書

客戶在申請 Let’s Encrypt 證書的時候,需要校驗域名的所有權,證明操作者有權利為該域名申請證書,目前支援三種驗證方式:

dns-01:給域名新增一個 DNS TXT 記錄。
http-01:在域名對應的 Web 伺服器下放置一個 HTTP well-known URL 資原始檔。
tls-sni-01:在域名對應的 Web 伺服器下放置一個 HTTPS well-known URL 資原始檔。

  • 而申請萬用字元證書,只能使用 dns-01 的方式

介紹下相關引數:
certonly,表示安裝模式,Certbot 有安裝模式和驗證模式兩種型別的外掛。
--manual 表示手動安裝外掛,Certbot 有很多外掛,不同的外掛都可以申請證書,使用者可以根據需要自行選擇
-d 為那些主機申請證書,如果是萬用字元,輸入 *.xxx.com(你自己的域名)
--preferred-challenges dns-01,使用 DNS 方式校驗域名所有權
--server,Let's Encrypt ACME v2 版本使用的伺服器不同於 v1 版本,需要顯示指定。

# 注xxx.com請根據自己的域名自行更改,萬用字元證書必須指定 --server 引數,並使用 acme v2 版本
./certbot-auto -d "*.xxx.com" --manual --preferred-challenges dns-01 certonly --server https://acme-v02.api.letsencrypt.org/directory

執行完這一步之後,會下載一些需要的依賴,稍等片刻之後,會提示輸入郵箱,隨便輸入都行【該郵箱用於安全提醒以及續期提醒】

10551280-ce952c41bc244f80..png
image

注意,申請萬用字元證書是要經過DNS認證的,按照提示,前往域名後臺新增對應的DNS TXT記錄。新增之後,不要心急著按回車,先執行dig xxxx.xxx.com txt確認解析記錄是否生效,生效之後再回去按回車確認

  • dig 命令安裝:yum install bind-utils
10551280-033712dc9c4cf2aa..png
image

到了這一步後,大功告成!!! 證書存放在/etc/letsencrypt/live/xxx.com/裡面

要續期的話,執行certbot-auto renew就可以了

10551280-e70ccc89a92ba4a4..png
image

注:這樣的證書無法應用到主域名xxx.com上,如需把主域名也增加到證書的覆蓋範圍,請在開始申請證書步驟的那個指令把主域名也加上,如下: 需要注意的是,這樣的話需要修改兩次解析記錄

./certbot-auto -d "*.xxx.com" -d "xxx.com" --manual --preferred-challenges dns-01 certonly --server https://acme-v02.api.letsencrypt.org/directory

10551280-9e5febbe76bfec5c..png
image

下面是一個nginx應用該證書的一個例子

server {
    server_name xxx.com;
    listen 443 http2 ssl;
    ssl on;
    ssl_certificate /etc/cert/xxx.cn/fullchain.pem;
    ssl_certificate_key /etc/cert/xxx.cn/privkey.pem;
    ssl_trusted_certificate  /etc/cert/xxx.cn/chain.pem;

    location / {
      proxy_pass http://127.0.0.1:6666;
    }
}

相關文章