Bind

在 bind9 中發布長域密鑰記錄

  • December 16, 2021

我正在建立一個基於 exim4 的郵件系統。該系統實現了 DKIM 簽名和檢查(除其他外)。簽名似乎沒有問題,但檢查不起作用,exim4 抱怨我的 TXT 記錄的語法,它帶有我的 dkim 公鑰:

2014-02-02 22:37:31 1WA5fP-0004Y4-E2 DKIM: d=middle.earth s=a9d04665528b593d263a6e5256648c99 c=relaxed/relaxed a=rsa-sha256 [invalid - syntax error in public key record]

我正在使用 2048 位長的 RSA 密鑰在郵件中繼級別簽署我的郵件(這工作正常,我確實在通過此伺服器中繼的郵件中有 DKIM 標頭)。問題似乎在於綁定(該區域的我的 DNS 伺服器)不支持區域文件中長度超過 255 個字元的記錄。所以我選擇了拆分記錄,如下圖所示,正如非常值得信賴的網站 zytrax.com 中所述:

...
a9d04665528b593d263a6e5256648c99._domainkey IN  1800 TXT    ("k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
                                        "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
                                        "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
                                        "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
                                        "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
                                        "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
                                        "Ixler0jMEoAyJmfQIDAQAB")

完整的區域文件可以在這裡找到:http: //pastebin.com/GDE5XA2M

使用該配置 exim 抱怨上述錯誤。如果我嘗試手動解析我的 dkim 記錄,我會得到:

;; ANSWER SECTION:
a9d04665528b593d263a6e5256648c99._domainkey.middle.earth. 1800 IN TXT "k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A" "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5" "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2" "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X" "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv" "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg" "Ixler0jMEoAyJmfQIDAQAB"

這對我來說看起來不太正確,我可以想像 exim 會因為這樣的輸出而迷失方向。但是,我不能 100% 確定對於這麼長的 DNS 記錄和 exim 是否應該處理它是正常的 DNS 回复,還是我坐起來綁定的方式是錯誤的。

對此的任何幫助將不勝感激。

謝謝。

您使用逗號而不是分號來分隔記錄中的鍵/值對。將其更改為:

a9d04665528b593d263a6e5256648c99._domainkey IN  1800 TXT (
        "k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
        "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
        "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
        "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
        "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
        "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
        "Ixler0jMEoAyJmfQIDAQAB")

另外,我會注意到,在我的特定區域文件中,我特別聲明了版本v=DKIM1,我認為你也應該這樣做。附帶說明一下,我不會用它來包裝記錄,( )因為我只是把它作為一條長線來完成:

record._domainkey IN 1800 TXT "v=DKIM1;blah" "blah2" "blah3"

這是個人偏好,我現在意識到您的偏好肯定更具可讀性。

引用自:https://serverfault.com/questions/571720