Apache2 - SSH - LetsEncrypt SSL - Certbot - 代理 - 手动设置:如何实现?

Apache2 - SSH - LetsEncrypt SSL - Certbot - 代理 - 手动设置:如何实现?

我有一个网站在 Apache 端口 80 HTTP(在临时子域上)上成功运行。

我正在按照本教程使用 LetsEncrypt 和 certbot 在 Apache2、Ubuntu 上设置 SSL 证书:

https://www.digitalocean.com/community/tutorials/how-to-set-up-let-s-encrypt-certificates-for-multiple-apache-virtual-hosts-on-ubuntu-16-04

已执行以下步骤:

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

最新一步失败,并出现

未经授权

消息,可能是因为该网站位于代理后面和/或因为示例.com尚未上线(DNS A 和 CNAME 记录尚未设置,因为与旧主机相比应该有一个流畅的变化,并且网站已经上线)。

因此我必须手动设置证书DNS 记录已设置。我发现 certbot 有一个--manual选项:https://certbot.eff.org/docs/using.html#manual

我也有.证书申请示例.com来自 LetsEncrypt 是否更有用?

然而,这是我陷入困境的地方,我不知道如何正确进行(是的,我对服务器设置还很陌生)。

您能告诉我下一步该怎么做才能以手动方式正确设置此 SSL 证书吗?

答案1

Certbot 有三种方式来向 letsencrypt 验证您对域的所有权。其中两种(httptls-sni)打开端口并提供特定内容(http)或证书(tls-sni);这两种方式对您来说都不适用,因为域(如您所说)不指向您正在运行的主机certbot

第三种方式(dns)非常适合您的情况。引用certbot文档:

使用 dns 质询时,certbot 会要求您在域名下放置一个包含特定内容的 TXT DNS 记录,该记录由您要为其颁发证书的主机名组成,并以 _acme-challenge 开头。例如,对于域 example.com,区域文件条目将如下所示:

_acme-challenge.example.com.300 IN TXT“gfj9Xq...Rg85nM”

这就是你需要做的。运行

certbot certonly --manual --preferred-challenges dns -d example.com -d www.example.com

此命令应执行以下操作:

  • 要求您创建 DNS TXT 记录
  • 创建 DNS TXT 记录后立即获取证书
  • 将证书放入/etc/letsencrypt

最后必须将证书配置添加到您的网络服务器。

相关内容