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