概述
本指南描述如何在以下文檔中所述的官方 Let's Encrypt 客戶端中使用 Webroot 方法進(jìn)行驗證的其他詳細(xì)信息:https://letsencrypt.readthedocs.org/en/latest/using.html#webroot
注意,Let's Encrypt 客戶端用于 ACME 身份驗證的默認(rèn)方式使用 DVSNI 方法。對于已啟用 Cloudflare 的域,這將失敗,因為我方終止了 SSL (TLS),并且 ACME 服務(wù)器不會看到客戶端在源站呈現(xiàn)的證書。啟用 Cloudflare 時,使用備用 ACME 驗證方法(如 DNS 或 HTTP)將能夠驗證成功。
HTTP 驗證
如果您是第一次為已在 Cloudflare 上激活的站點配置 Let's Encrypt,則使用 webroot 方法進(jìn)行驗證,這是成功驗證并獲取證書和私鑰對所需的步驟。
下載 Let’s Encrypt 客戶端并切換到下載目錄:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
運行可實現(xiàn)自動安裝的腳本:
./letsencrypt-auto
通過將 letsencrypt 客戶端與 certonly 命令和 --webroot 標(biāo)志一同使用,您能夠使用 HTTP 驗證來驗證并獲取證書/密鑰對 。示例命令:
/root/.local/share/letsencrypt/bin/letsencrypt certonly --webroot --webroot-path /usr/share/nginx/html/ --renew-by-default --email email@host.tld --text --agree-tos -d example.tld -d www.example.tld
其中
--webroot-path
是您站點所在服務(wù)器上的目錄(該示例中使用了 nginx)
--renew-by-default
在域名為先前獲得的證書的超集時選擇默認(rèn)續(xù)訂
是用于注冊和恢復(fù)聯(lián)系方式的電子郵件。
--text
顯示文本輸出
--agree-tos
同意 Let’s Encrypt 的訂戶協(xié)議
-d
指定要添加到 SAN 的主機(jī)名。
成功完成此驗證方法將顯示類似于以下內(nèi)容的文本:
恭喜您!您的證書和鏈已保存在 /etc/letsencrypt/live/example.tld/fullchain.pem 中。 您的證書將于 2016-03-03 到期。要在將來獲得新版本的證書, 只需再次運行 Let's Encrypt 即可。
注意,證書和密鑰都將保存到/etc/letsencrypt/live/example.tld/。獲得這兩者后,您將需要手動更新虛擬主機(jī),以使用此密鑰/證書對。
務(wù)必在 Cloudflare 儀表板中查看域的page rules,以及確認(rèn)任何方面都不會導(dǎo)致對驗證 URL 的請求被重定向或只能通過 HTTPS 訪問。
續(xù)訂
當(dāng)需要續(xù)訂時,使用 letsencrypt renew命令應(yīng)可使證書成功續(xù)訂,無需進(jìn)行任何 Cloudflare 配置更改,前提是:
letsencrypt 客戶端用于續(xù)訂的 .conf 文件指定了authenticator = webroot。
驗證 URL 可通過 HTTP 訪問。
沒有為該 URL 應(yīng)用重定向。
或者,重復(fù)上述步驟將重新頒發(fā)新證書。