我正在 Google Cloud DNS 中设置一条长度超过 255 个字符的 DKIM 记录。我已按照建议将其拆分为 2 个值https://support.google.com/a/answer/173535。这是它在 Terraform 中的显示方式。
$ terraform show
google_dns_record_set.siteground_dkim:
id = rightleadsio/default._domainkey.rightleads.io./TXT
managed_zone = rightleadsio
name = default._domainkey.rightleads.io.
project = rlautomation-156511
rrdatas.# = 2
rrdatas.0 = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
rrdatas.1 = "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
ttl = 3600
type = TXT
但是,当我使用 dig 或 mxtoolbox 查询这个时,它显示 rrdatas.1 作为第一个值,显示 rrdatas.0 作为第二个值,因此无法正确地组合值。
$ dig +short txt default._domainkey.rightleads.io
"zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
我做错了什么吗?还是 Google Cloud DNS 的问题?有没有办法解决这个问题而不改变密钥,因为这不在我的控制范围内。
答案1
确实,DKIM 值的添加方式是错误的。
看起来您添加了两个单独的TXT
记录,每个记录都有一个字符串值,而不是一个TXT
包含两个字符串的记录。(是的,TXT
记录是多值的,并且长度限制是针对每个值的。)
后者是 DKIM 规范允许长值的方式,其定义是,如果一条TXT
记录有多个值,则应先将它们连接成一个长字符串,然后再解析为 DKIM 值。
但是,多个单独的 TXT 记录不应以任何方式组合。
即,正如 Google 支持文章所述,长字符串需要拆分成较短的部分,但这些部分仍应全部位于一条记录中。
(这是 DNS 级别的要求,在某些情况下,与之交互的界面会抽象出这种行为。)
在主文件格式中您的记录将是:
default._domainkey.rightleads.io. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85" "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
和你现在看起来不一样:
default._domainkey.rightleads.io. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
default._domainkey.rightleads.io. 3600 IN TXT "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
顺便提一下,在 DNS 中,一般没有定义记录的顺序RR集(具有相同所有者姓名,班级和类型)。
预计您在添加记录时使用的顺序可能不一定会保持不变(如您的示例所示),但这在 DKIM 上下文中并不重要,因为整个 DKIM 值TXT
无论如何都必须在同一条记录内。