无法确定 DKIM 密钥长度

Unable to determine DKIM key length

我创建了 public 和私钥 运行 ssh-keygen -t rsa -b 4096

然后我创建了一个类型为 TXT 的 DNS 条目 dkim._domainkey,其值为:

v=dkim1; p=AAAAB3NzaC1yc2EAAAABIwAAAgEAvQ1GCaGx9CRKqW4wJUalTb6lGb6C1vm5iTUaus7b8EfurN8JWQouVa+n7V1YbbtAk14om7k+24i5ApbaULv8bhH5fGyano91ZQ4UpXTNxo9TrpgLntRCVQf0GlB1JNADiFMHetepf49xMDh5+NhPvgxzDBwGNqa2e4dR+SiruFKUNr5kBeLCzB9mcpzgI0jLj3PVfiB0c+SfeCcQUcGteWplurl3KLWdFAEAkTlMHPd61adt//mGRy9+XbKnVUVUNK6bn5k5pV+CSmx31pSbbFbUUjtmS4gUzPuqFDsJlVv0Sz5THNMgNiei4dSX3EqvJUmE13m+sKhImyqLoIFMTxD2Z2PxOVVqE2IqnEi9Hn+QluEiczi/g9/thWz8AnodDLlDv884LSQK7Dedie35ueyzUwgkeUsnebzSdqk1A0AqF/IcEBFiAyQyjepJ03Svv04job4cMjX90L4WoeznyCu2KTo9mTcoRRZJhLlDu0afcKavLOr6ydpJyaEsxgRzZURxFbPXUq8FGR3MbuOLszToHd6+CAOH5exRRll+Bs8O8I/dQsvJA6NqCQpynjXpNRwZ5e3RqshOR8RlZsNB4fuTk0SN2rNiozxAwQWoCl4dg+u/jfyki1GPD86qo1U1NWWXKIpXHZqYSx4FXI/CVkQ3KLI9LW1U1GxPwGVpqkU

现在当我使用 https://protodave.com/tools/dkim-key-checker/ 测试它时,它说:

Unable to properly parse the public key string and determine key length or the key is invalid. Tip: Make sure there aren't any special charaters or newlines pasted into your key in the TXT record.

我只是从 ssh-keygen 生成的文件中复制粘贴了完整的密钥。关于如何找出问题所在的任何提示?

我使用 openssl genrsa -out openssl.priv 1024openssl rsa -in openssl.priv -pubout >openssl.pub 来生成密钥,现在它工作正常。

您可以而且也许应该使用 2048 的密钥长度,它在 DKIM 规范中。 也就是说,我听说 AWS 托管的邮件服务器有问题,坚持使用 1024,但那是几年前的事了。

  1. 创建私钥:

$openssl genrsa -out dkim_private.pem 2048

  1. 以der形式取出public密钥,用于后续无LF编码:

$openssl rsa -in dkim_private.pem -pubout -outform der -out dkim_public.key

  1. 需要将 public 密钥转换为 base64 表示形式:

$openssl <dkim_public.key base64 -A >p_equals

在此之后,文件p_equals中的base64编码字符串就是您的DNS TXT记录中需要的字符串(p=MI......AB)。