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
執行完這一步之后,會下載一些需要的依賴,稍等片刻之后,會提示輸入郵箱,隨便輸入都行【該郵箱用於安全提醒以及續期提醒】
注意,申請通配符證書是要經過DNS認證的,按照提示,前往域名后台添加對應的DNS TXT記錄。添加之后,不要心急着按回車,先執行dig xxxx.xxx.com txt確認解析記錄是否生效,生效之后再回去按回車確認
dig 命令安裝:yum install bind-utils
到了這一步后,大功告成!!! 證書存放在/etc/letsencrypt/live/xxx.com/里面
要續期的話,執行certbot-auto renew就可以了
注:這樣的證書無法應用到主域名xxx.com上,如需把主域名也增加到證書的覆蓋范圍,請在開始申請證書步驟的那個指令把主域名也加上,如下: 需要注意的是,這樣的話需要修改兩次解析記錄
./certbot-auto -d "*.xxx.com" -d "xxx.com" --manual --preferred-challenges dns-01 certonly --server https://acme-v02.api.letsencrypt.org/directory
下面是一個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; } }
這是客戶機(apache)上的一個示例
<VirtualHost _default_:443> ServerName abc.com ServerAlias abc.com www.abc.com DocumentRoot "/var/www/host/abc.com" <Directory "/var/www/host/abc.com"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow From All </Directory> RewriteEngine on RewriteCond %{HTTP_HOST} ^abc.com [NC] RewriteRule ^(.*) http://www.abc.com/ [L] Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/abc.com-0001/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/abc.com-0001/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/abc.com-0001/chain.pem </VirtualHost>
轉自: