dkim 失敗:公鑰似乎無效

dkim 失敗:公鑰似乎無效

我使用 Puttygen 建立了一個公共/私人 rsa 金鑰對。我將以下記錄新增至 dns 但 dkim 失敗。我的公鑰似乎有一些問題。我用它檢查過https://dkimcore.org/c/keycheck並發現它無效。

v=DKIM1; k=rsa; h=sha256; p=AAAAB3NzaC1yc2EAAAABJQAAAQEArv5BxLaIE0HYkr1RSIqhAUUZ3OPiV81e8d0Q7Iv2jIQ9LCxnw831HteCwMFzry352dW2UfbmjVMesNOiyZWrE2oHYCG/hQ6ocl5KIY/cNrymZYkzFgnG/HeQBU+YZWkRyT7tNzG6IhgFBs7BZdO1iyEJNaAjsdXZJuv7H2Z4r5aDk8n1A0bzfYGhiIX4uSyUbV6T5njsfBX7Un0IBvf/nbEj6NJ+idF0puoz0gWffRWu1zoJfFs8ddjHSGsp4bKQjsm6msAvc7LZ6csmNec1G9UdUAzd+rxETaRIew7p3E6PiPbTfGuLr283V+SZMMume6bgyK3Bg7/bKv80vD71mw==

我的文法有問題嗎?

答案1

是的。金鑰本身必須以特定格式打包,而您使用了錯誤的格式。

RSA 金鑰對不僅僅是一段隨機文本,它在內部由一些大數字組成,不同的程式有不同的方式將這些數字編碼為位元組(將它們序列化)。例如,n之前可能會去e或之後;它們可能以大端或小端儲存;有些格式有一個欄位指示金鑰類型本身,有些則沒有。

您嘗試使用的文字p=採用 SSHv2 格式。然而,DKIM 要求它採用PKCS#1“RSAPublicKey”格式(又名OpenSSL PEM 格式),儘管DKIM 規範後來通過顯示X.509“SubjectPublicKeyInfo”格式的示例而自相矛盾,並且許多實現確實接受這兩種格式。

PuTTYgen可以輸出兩者都不這些公鑰格式 - 您將需要使用不同的工具。最好使用 DKIM 簽章軟體提供的金鑰產生工具。

(如果您的 DKIM 軟體沒有附帶任何密鑰對,那麼該openssl命令應該可以完成這項工作 - 它的genrsagenpkey命令可以創建一個新的密鑰對,然後rsapkey提取公共密鑰對。)

相關內容