一,HTTP-01 验证
这是当今最常见的验证方式。 Let’s Encrypt 向您的 ACME 客户端提供一个令牌,然后您的 ACME 客户端将在您对 Web 服务器的 http://<你的域名>/.well-known/acme-challenge/(用提供的令牌替换 )路径上放置指定文件。 该文件包含令牌以及帐户密钥的指纹。 一旦您的 ACME 客户端告诉 Let’s Encrypt 文件已准备就绪,Let’s Encrypt 会尝试获取它(可能从多个地点进行多次尝试)。 如果我们的验证机制在您的 Web 服务器上找到了放置于正确地点的正确文件,则该验证被视为成功,您可以继续申请颁发证书。 如果验证检查失败,您将不得不再次使用新证书重新申请。
我们的 HTTP-01 验证最多接受 10 次重定向。 我们只接受目标为“http:”或“https:”且端口为 80 或 443 的重定向。 我们不目标为 IP 地址的重定向。 当被重定向到 HTTPS 链接时,我们不会验证证书是否有效(因为验证的目的是申请有效证书,所以它可能会遇到自签名或过期的证书)。
HTTP-01 验证只能使用 80 端口。 因为允许客户端指定任意端口会降低安全性,所以 ACME 标准已禁止此行为。
优点:
- 它可以轻松地自动化进行而不需要关于域名配置的额外知识。
- 它允许托管服务提供商为通过 CNAME 指向它们的域名颁发证书。
- 它适用于现成的Web 服务器。
缺点:
- 如果您的 ISP 封锁了 80 端口,该验证将无法正常工作(这种情况很少见,但一些住宅 ISP 会这么做)。
- Let’s Encrypt不允许您使用此验证方式来颁发通配符证书。
- 您如果有多个 Web 服务器,则必须确保该文件在所有这些服务器上都可用。
二,利用certbot获取证书
运行命令
sudo certbot --manual --preferred-challenges http certonly
输入域名并同意记录本机IP后开始获取证书,接着certbot就会弹出如下的提示:
用提供的令牌替换 路径上放置指定文件。
替换好后回车继续
申请成功