了解如何验证已激活 Cloudflare 站点的 Let’s Encrypt SSL 证书。
概述
本指南描述如何在以下文档中所述的官方 Let's Encrypt 客户端中使用 Webroot 方法进行验证的其他详细信息:https://letsencrypt.readthedocs.org/en/latest/using.html#webroot
注意,Let's Encrypt 客户端用于 ACME 身份验证的默认方式使用 DVSNI 方法。对于已启用 Cloudflare 的域,这将失败,因为我方终止了 SSL (TLS),并且 ACME 服务器不会看到客户端在源站呈现的证书。启用 Cloudflare 时,使用备用 ACME 验证方法(如 DNS 或 HTTP)将能够验证成功。
HTTP 验证
如果您是第一次为已在 Cloudflare 上激活的站点配置 Let's Encrypt,则使用 webroot 方法进行验证,这是成功验证并获取证书和私钥对所需的步骤。
- 下载 Let’s Encrypt 客户端并切换到下载目录:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
- 运行可实现自动安装的脚本:
./letsencrypt-auto
- 通过将
letsencrypt
客户端与certonly
命令和--webroot
标志一同使用,您能够使用 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
- 是您站点所在服务器上的目录(该示例中使用了 nginx)
- --renew-by-default
- 在域名为先前获得的证书的超集时选择默认续订
- 是用于注册和恢复联系方式的电子邮件。
- --text
- 显示文本输出
- --agree-tos
- 同意 Let’s Encrypt 的订户协议
- -d
- 指定要添加到 SAN 的主机名。
- 成功完成此验证方法将显示类似于以下内容的文本:
恭喜您!您的证书和链已保存在 /etc/letsencrypt/live/example.tld/fullchain.pem 中。 您的证书将于 2016-03-03 到期。要在将来获得新版本的证书, 只需再次运行 Let's Encrypt 即可。
- 注意,证书和密钥都将保存到
/etc/letsencrypt/live/example.tld/
。获得这两者后,您将需要手动更新虚拟主机,以使用此密钥/证书对。
务必在 Cloudflare 仪表板中查看域的page rules,以及确认任何方面都不会导致对验证 URL 的请求被重定向或只能通过 HTTPS 访问。
续订
当需要续订时,使用 letsencrypt renew
命令应可使证书成功续订,无需进行任何 Cloudflare 配置更改,前提是:
- letsencrypt 客户端用于续订的 .conf 文件指定了
authenticator = webroot
。 - 验证 URL 可通过 HTTP 访问。
- 没有为该 URL 应用重定向。
或者,重复上述步骤将重新颁发新证书。