【发布时间】:2018-04-19 11:23:52
【问题描述】:
我正在运行 exim+dovecot。我试图用 opendkim 生成一个 dkim 密钥,但结果是我的 dkim 无效。我应该使用 openssl 还是 opendkim 签署 DKIM 签名?
正确设置 dkim 和 exim 的正确步骤是什么?
exim.conf 中的正确设置是什么?
【问题讨论】:
我正在运行 exim+dovecot。我试图用 opendkim 生成一个 dkim 密钥,但结果是我的 dkim 无效。我应该使用 openssl 还是 opendkim 签署 DKIM 签名?
正确设置 dkim 和 exim 的正确步骤是什么?
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.tld 和 mydomain.tld.pub。第二个文件包含一长行,其中第二个字段(标记为粗斜体)是您必须放入域的区域记录中的公钥。
ssh-rsa AAAAB3NzaC1yc.....9akAq8YqPJN root@xx.yy.zz
第一个文件已准备好供 MTA 使用。只需将其重命名为 mydomain.tld.key 并将其复制到安全位置并从 MTA 配置中引用它。请记住,MTA 通常要求私有 DKIM 密钥只能由 MTA 用户读取,因此权限应设置为 600 而不是通常的 644。
DNS 配置在howtos 的数量中有很好的描述。而exim 应该这样配置:
begin transports
xmit:
driver = smtp
dkim_domain = mydomain.tld
dkim_selector = mydomaintld
dkim_private_key = /path/to/the/mydomain.tld.key
. . . . .
【讨论】: