路线53不允许添加DKIM密钥,因为长度太长


41

这是我输入DKIM键值的方法:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwztXzIUqic95qSESmnqX U5v4W4ENbciFWyBkymsmmSNOhLlEtzp/mnyhf50ApwCTGLK9U7goo/ijX/wr5roy XhReVrvcqtIo3+63a1Et58C1J2o4xCvp0K2/lM6hla4B9jSph7QzjYdtWlOJqLRs o0nzcut7DSq/xYcVqvrFDNbutCfG//0wcRVUtGEyLX/a/7mAAkW6H8UEYMPglQ9c eEDfTT6pzIlqaK9cHGOsSCg4r0N8YxnHFMRzKaZwmudaXTorSbCs7e681g125/vJ e82VV7DE0uvKW/jquZYtgMn7+0rm+2FDYcDx/7lzoByl91rx37MAJaUx/2JHi1EA nwIDAQAB"

此值中没有新行(我专门复制并粘贴了文本并在文本编辑器中对其进行了测试)。但是由于某些原因,我一直收到TXT太长的错误:

TXTRDATATooLong遇到在“V = DKIM1; K = RSA; P = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwztXzIUqic95qSESmnqX U5v4W4ENbciFWyBkymsmmSNOhLlEtzp / mnyhf50ApwCTGLK9U7goo / IJX / wr5roy XhReVrvcqtIo3 + 63a1Et58C1J2o4xCvp0K2 / lM6hla4B9jSph7QzjYdtWlOJqLRs o0nzcut7DSq / xYcVqvrFDNbutCfG // 0wcRVUtGEyLX /一个/ 7mAAkW6H8UEYMPglQ9c eEDfTT6pzIlqaK9cHGOsSCg4r0N8YxnHFMRzKaZwmudaXTorSbCs7e681g125 / VJ e82VV7DE0uvKW / jquZYtgMn7 + 0rm + 2FDYcDx / 7lzoByl91rx37MAJaUx / 2JHi1EA nwIDAQAB”

我真的不知道该怎么办才能解决此问题。


尝试每次删除之后的空间;
Drifter104 '16

我也遇到了AWS Route 53 DKIM的问题...您解决了这个问题吗?我发现Amazon AWS的维护不佳...只是尝试使用其Q / A论坛... 15岁的古老过时Web UI开了个玩笑
Scott Stensland

@ScottStensland作为公认的答案,这不是AWS的错,有一个简单的解决方案。
ceejayoz '16

Answers:


56

在Route 53论坛中查看类似问题

不幸的是,TXT记录上每个字符串的255个字符限制不是Route53限制,而是DNS协议本身施加的限制。但是,每个TXT记录可以包含多个字符串,每个字符串长255个字符。您将需要将DKIM拆分为多个字符串以保存TXT记录。您可以通过控制台输入每个用引号引起来的字符串(每行一个字符串)来完成此操作。

重要说明:请勿按照说明使用“每行一个字符串”-用单个空格分隔字符串,例如。"foo" "bar""foo"\n"bar"。使用DKIMValidator验证签名是否正确读取。


12
还要确保每个结束/开始引号之间有1个空格-不是在添加TXT记录时AWS所显示的换行符/ cr-这些不是单独的记录"p=sdfgkjhsdfg...." "sdklfjsdf....."
bshea '17

5
换行空间对我来说是个问题。感谢@bshea
Nehal J Wani

40

您可以将其切成带引号的文本块,每个块的最大长度为255。您不必使每个块都精确。

例如,如果您的值看起来像:

"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyza bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"

您可以在任意位置将其切碎:

"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzab" "cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"

请注意,这些是每个块之间的单个空格,而不是换行符!

毫不奇怪,Google的设置说明非常糟糕。我刚刚写了一个完整的指南,说明如何在Route53上执行此操作。


2
“请注意,这些是每个块之间的单个空格,而不是换行符!” 这对我很重要,因为它不起作用。切换后立即工作,谢谢!
Alex Yurkowski

1
这应该是公认的答案。
Nikolay Tsenkov

奇怪的是,空间工作了DKIM,但是加入我的SPF值要在现有的TXT记录时,我不得不带引号的字符串换行,而不是空格分开,然后才会在AWS路线53.工作
adam0101

5

AWS Route53上的DKIM

您必须将DMARC记录拆分为255个字符。如果您恰巧使用AWS Route53托管DNS,请"..."在记录中插入带引号的每个部分。

不要使用换行符来分割各部分,因为那将是单独的TXT条目。

v=DKIM1; k=rsa; p=ABC123longkeypart1ABC123longkeypart2

变成

"v=DKIM1; k=rsa; p=ABC123longkeypart1" "ABC123longkeypart2"

使用Terraform和Route53

使用Terraform设置Route53记录时,还必须将DKIM键拆分为255个最大字符部分。

由于Terraform负责引用TXT条目,因此您只能在每个部分之间提供引号,就像一样\"\"

v=DKIM1; k=rsa; p=ABC123longkeypart1ABC123longkeypart2

变成

resource "aws_route53_record" "some_domain_dkim" {
  zone_id = "${aws_route53_zone.some_domain.zone_id}"
  name    = "google._domainkey.some_domain.com."
  type    = "TXT"
  ttl     = "3600"

  records = [
    "v=DKIM1; k=rsa; p=ABC123longkeypart1\"\"ABC123longkeypart2"
  ]
}

另请参阅:https : //www.terraform.io/docs/providers/aws/r/route53_record.html#records


3

您只需选择1024(而不是2048),然后在Google Apps中生成TXT时将其添加到路由53


4
没有理由这样做-如果要2048,请遵循所选的答案。将dkim记录与引号+之间的单个空格相连。它将起作用。
bshea
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.