如何在一个已在 Cloudflare 上注册并激活的网站验证 Let’s Encrypt 加密证书

概述

本指南描述如何在以下文档中所述的官方 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 方法进行验证,这是成功验证并获取证书和私钥对所需的步骤。

  1. 下载 Let’s Encrypt 客户端并更改下载目录:
    1. git clone https://github.com/letsencrypt/letsencrypt
    2. cd letsencrypt/
  2. 运行可实现自动安装的脚本:
    1. ./letsencrypt-auto
  3. 通过将 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 在域名为先前获得的证书的超集时选择默认续订
    --email 是用于注册和恢复联系方式的电子邮件。
    --text 显示文本输出
    --agree-tos 同意 Let’s Encrypt 的订户协议
    -d 指定要添加到 SAN 的主机名。
  4. 成功完成此验证方法将显示类似于以下内容的文本:
    1. 重要说明:
      - 恭喜!您的证书和链已保存在 /etc/letsencrypt/live/example.tld/fullchain.pem 中。您的证书将于 2016-03-03 到期。要在将来获得新版本的证书,只需再次运行 Let's Encrypt 即可。
  5. 注意,证书和密钥都将保存到/etc/letsencrypt/live/example.tld/。获得这两者后,您将需要手动更新虚拟主机,以使用此密钥/证书对。

务必在 Cloudflare 控制面板中查看域的page rules,以及确认任何方面都不会导致对验证 URL 的请求被重定向或只能通过 HTTPS 访问。

续订

当需要续订时,使用 letsencrypt renew命令应可使证书成功续订,无需进行任何 Cloudflare 配置更改,前提是:

  • letsencrypt 客户端用于续订的 .conf 文件指定了authenticator = webroot
  • 验证 URL 可通过 HTTP 访问。
  • 没有为该 URL 应用重定向。

或者,重复上述步骤将重新颁发新证书。

截至 2016 年 2 月,官方客户端尚不支持此 DNS 验证方法;但存在使用此方法的第三方实用程序。

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持