如何为我的邮件服务器正确地颁发 Let's Encrypt 证书?

如何为我的邮件服务器正确地颁发 Let's Encrypt 证书?

如何为我的 Postfix 邮件服务器正确颁发 Let's Encrypt 证书?目前我有一个自签名证书,但我收到这些消息,说它不可信任。

我执行了 certbot --nginx certonly -d mail.example.org 并且显然它是自签名的。

答案1

Dan 是正确的 - 该--certonly选项告诉 certbot 获取证书但不执行任何操作。脚本将告诉您该证书现在在哪里,最有可能是名为、、和 的/etc/letsencrypt/live/mail.example.org文件。您将进入 Postfix 的配置,并更改证书路径以指向这些文件。完成此操作后,当然,您将重新启动 Postfix。cert.pemchain.pemfullchain.pemprivkey.pem

答案2

让我们加密,自 Certbot 2.0 起,默认颁发 ECC 证书。一些发送邮件系统尚不支持这些证书,而仅支持 RSA 证书。因此,正确发行Postfix 邮件服务器的证书,您需要两组证书+密钥文件:

smtpd_tls_chain_files =
    /etc/letsencrypt/live/mail.example.com-ecdsa/privkey.pem,
    /etc/letsencrypt/live/mail.example.com-ecdsa/fullchain.pem,
    /etc/letsencrypt/live/mail.example.com-rsa/privkey.pem,
    /etc/letsencrypt/live/mail.example.com-rsa/fullchain.pem

您可以通过注释掉key-type来获取它们/etc/letsencrypt/cli.ini,然后使用--key-type命令行 中的选项颁发证书。这部分至关重要,因为 中的设置cli.ini将覆盖 中的设置/etc/letsencrypt/renewal/*.conf,这将在下一次自动续订时破坏一切。例如,

sudo certbot certonly \
  --cert-name mail.example.com-ecdsa \
  -d mail.example.com \
  --key-type ecdsa

sudo certbot certonly \
  --cert-name mail.example.com-rsa \
  -d mail.example.com \
  --key-type rsa

更详细的答案:https://serverfault.com/a/1151326/274176

相关内容