DKIM + EXIM + Dovecot 用于外发电子邮件

DKIM + EXIM + Dovecot for outgoing emails

我是 运行 exim+dovecot。我尝试使用 opendkim 生成 dkim 密钥,但结果是我的 dkim 无效。我应该用 openssl 还是用 opendkim 签署 DKIM 签名?

使用 exim 为外发电子邮件正确设置 dkim 的正确步骤是什么?

exim.conf 中的正确设置是什么?

DKIM 根本不需要签名。您所需要的只是一对合适的 RSA/DSA 密钥,它们可以由 ssh-keygen 与预安装的 openssh 捆绑在一起生成。将密码留空:

> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): mydomain.tld
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in mydomain.tld.
Your public key has been saved in mydomain.tld.pub.
The key fingerprint is:
SHA256:CD0n/Ut/GQgjYgKwONoj7FGXUJvdgyJt4FFczGZfqoE root@xx.yy.zz
The key's randomart image is:
+---[RSA 2048]----+
|...++o+.         |
|....=o=*o  .     |
|+  +oOXo=o=      |
|oo. +E.B =.o .   |
|ooo   . S o . .  |
|....   . . o   o |
| .        . . o  |
|             .   |
|                 |
+----[SHA256]-----+

现在我们有两个文件:mydomain.tldmydomain.tld.pub。第二个文件包含一长行,其中第二个字段(标记为粗体斜体)是您必须放入域的区域记录中的 public 键。

ssh-rsa AAAAB3NzaC1yc.....9akAq8YqPJN root@xx.yy.zz

第一个文件已准备好供 MTA 使用。只需将其重命名为 mydomain.tld.key 并将其复制到安全位置并从 MTA 配置中引用它。请记住,MTA 通常要求私有 DKIM 密钥只能由 MTA 用户读取,因此权限应设置为 600 而不是通常的 644。

许多 howtos 中都很好地描述了 DNS 配置。 exim 应该这样配置:

begin transports
xmit:
    driver              = smtp
    dkim_domain         = mydomain.tld
    dkim_selector       = mydomaintld
    dkim_private_key    = /path/to/the/mydomain.tld.key

. . . . .