使用 letsencrypt 和 certbot 如何将邮件服务器添加到现有证书?

使用 letsencrypt 和 certbot 如何将邮件服务器添加到现有证书?

主持人:数字海洋

操作系统:CentOS

我有一个涵盖我的域名的现有 SSL 证书。

$ certbot certificates产生此输出。

Found the following certs:
   Certificate Name: example.com
     Domains: example.com www.example.com
     Expiry Date: 2020-04-12 21:20:31+00:00 (VALID: 86 days)
     Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
     Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem

我安装了postfix,我认为我需要添加mail.example.com我的证书。

我尝试添加mail.example.com使用此命令添加到我的证书

$ sudo certbot certonly --standalone -d mail.example.com

不幸的是它抛出了这个错误,

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mail.example.com
Waiting for verification…
Challenge failed for domain mail.example.com
http-01 challenge for mail.example.com
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:

The following errors were reported by the server:

Domain: mail.example.com
Type: dns
Detail: DNS problem: NXDOMAIN looking up A for mail.example.com

certbot 似乎正在尝试安装mail.example.com使用 A 记录。在 Digital Ocean 的我的域名记录部分mail.example.com被创建为 MX 记录,而不是 A 记录。

答案1

您说得对,为了传递邮件,您需要一个 MX 条目。但是:mail.testsite.com 是一个完全合格的主机名。您需要告诉所有想要向您传递邮件的人这个主机名的 IP 地址是什么。因此,您还需要一个 A 记录,指向您想要接收邮件的服务器。

创建一条记录并指向您的邮件服务器,然后从该机器运行 certbot。确保 Web 服务器在端口 80 上响应 mail.testsite.com,验证才能成功。然后它就会正常工作。

答案2

像这样做:

$ sudo certbot -d mail.example.com --manual --preferred-challenges dns certonly

将打印 DNS TXT 记录(不要点击进入),将其发布到您的 DNS,并等到您确定 TXT 记录可以从 DNS 外部读取,然后单击进入并将得到验证。

答案3

如果 Ionos 是您的 DNS 提供商,并且您遵循将邮件服务器命名为 mail.example.com 的通用惯例,则创建 A 记录“mail”和 MX 记录“mail”是不够的。您的 TXT 记录不满足 certbot 的要求。

您必须创建一个子域名使用 Ionos UI 将其命名为“mail”。然后,您可以在 UI 中导航到该子域,创建 TXT 记录并将其命名为“_acme-challenge”。这将生成一个有效的“_acme-challenge.mail.example.com”TXT 记录。

最好将其留待以后查询

在我看来,每次运行 certbot 时,挑战中的值都会发生变化。因此,您可以保留 TXT 记录,但每次都必须对其进行编辑。

相关内容