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

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

以下是我输入 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/a/7mAAkW6H8UEYMPglQ9c eEDfTT6pzIlqaK9cHGOsSCg4r0N8YxnHFMRzKaZwmudaXTorSbCs7e681g125/vJ e82VV7DE0uvKW/jquZYtgMn7+0rm+2FDYcDx/7lzoByl91rx37MAJaUx/2JHi1EA nwIDAQAB”

我真的不知道该怎么做才能解决这个问题。

答案1

看到Route 53 论坛中也有类似问题

不幸的是,TXT 记录中每个字符串 255 个字符的限制不是 Route53 的限制,而是由 DNS 协议本身强加的。但是,每个 TXT 记录可以有多个字符串,每个字符串长度为 255 个字符。您需要将 DKIM 拆分为多个字符串以用于 TXT 记录。您可以通过控制台执行此操作,方法是输入括在引号中的每个字符串,每行一个字符串。

重要的提示:不要按照说明使用“每行一个字符串”——用一个空格分隔字符串,例如"foo" "bar"not "foo"\n"bar"。使用DKIM验证器验证签名是否被正确读取。

答案2

您可以将其分成几段引用文本,每段的最大长度为 255。您不必让每段都精确。

例如,如果你的值如下所示:

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

你可以在任意地方将其切碎:

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

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

不出所料,谷歌的设置说明如下糟糕的。我只是撰写了完整的指南有关如何在 Route53 上执行此操作。

答案3

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

答案4

在 AWS Route 53 上,创建或编辑 DKIM 的 TXT 记录,并选择“使用向导”选项,而不是快速输入方法。记录名称应为 default._domainkey.yourdomain.com(或 apropos),记录类型为 TXT。您已经知道所有这些,但粘性位是 256 个字符的记录。

在记录值框中剪切并粘贴 sudo cat /etc/opendkim/keys/yourdomain.com/default.txt 输出的“括号内的所有内容”

删除引号,并将每个带引号的字符串放在其自己的行中(不带引号),然后点击提交按钮。

返回并编辑它,您将看到已添加引号。引号中的这些引号字符串位于三行单独的行上,从而导致多个记录而不是一个记录,因此编辑记录值并将换行符替换为空格(自动换行将使其看起来相同,但在区域记录中保存时其字符不同,并且由于我无法理解的原因,它显示为拆分为<256 个字符块的单个记录,而不是三个单独的记录。

感谢上述 Overbyrd 指出这一点。

这是为了快速轻松地输入 AWS 信息,并提供更多背景信息,以防我自己或其他人需要挖掘有关 AWS Route 53 DNS TXT DKIM EC2 256 字符 opendkim 问题长记录问题的信息。

相关内容