Вопрос или проблема
Вот как я ввожу значение для ключа 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”
Я действительно не знаю, что мне делать, чтобы исправить эту проблему.
Смотрите подобная проблема на форуме Route 53:
К сожалению, ограничение в 255 символов на строку для TXT записей не является ограничением Route53, а является ограничением самого DNS-протокола. Однако каждая TXT запись может иметь несколько строк, каждая длиной 255 символов. Вам нужно разбить ваш DKIM на несколько строк для вашей TXT записи. Вы можете сделать это через консоль, введя каждую строку в кавычках, одна строка на строку.
Важно: Не используйте “одну строку на строку”, как указано в инструкциях — разделяйте строки одним пробелом, например. "foo" "bar"
, а не "foo"\n"bar"
. Используйте DKIMValidator, чтобы проверить, что подпись читается правильно.
Вы можете разбить его на части с текстом в кавычках максимальной длиной 255 символов на часть. Вам не нужно делать каждую часть точной.
Например, если ваше значение выглядит как-то так:
"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyza bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"
Вы можете разбить его в произвольных местах:
"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzab" "cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabc"
Обратите внимание, что между каждой частью один пробел, а не новая строка!
Инструкции по настройке Google, как ни странно, ужасны. Я просто написал полный гид о том, как это сделать в Route53.
DKIM на AWS Route53
Вы должны разбить запись DMARC на части по 255 символов. Если вы размещаете свой DNS с помощью AWS Route53, вставьте каждую часть в кавычках "..."
в запись.
Не используйте новые строки для разделения частей, потому что это будут отдельные 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
Вы можете просто выбрать 1024 вместо 2048 и добавить это в Route 53 во время создания TXT в Google Apps
В AWS Route 53 создайте или отредактируйте TXT запись для DKIM и выберите вариант “использовать мастер”, а не метод быстрого ввода. Имя записи должно быть default._domainkey.yourdomain.com (или аналогично) и тип записи TXT. Вы это уже знаете, но ключевая часть заключается в 256 символах записи.
В поле значения записи вырежьте и вставьте “все внутри скобок” вывод из
sudo cat /etc/opendkim/keys/yourdomain.com/default.txt
Удалите кавычки и поместите каждую строку с кавычками на своей собственный строке без кавычек, затем нажмите кнопку отправки.
Вернитесь и отредактируйте, и вы увидите, что кавычки были добавлены. Эти строки поместили в кавычки оказались на трех отдельных строках, что вызвало появление нескольких записей вместо одной, поэтому отредактируйте значение записи и замените символ новой строки на пробел (перенос строки будет выглядеть одинаково, но это отличается символом, когда находится в зоне записи, и по причинам, которые мне непонятны, она появляется как одна запись, разделенная на фрагменты менее 256 символов, а не три отдельные записи.
Спасибо Overbyrd за то, что обратил на это внимание.
Это быстрое и простое введение для AWS, предоставляющее немного больше контекста, если мне или другим нужно будет найти информацию по проблемам с AWS Route 53 DNS TXT DKIM EC2 256 символов opendkim длинные записи.
На Amazon Lightsail мне пришлось заключить разделенные тексты в дополнительные кавычки, таким образом:
"v=DKIM1;k=rsa; p=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
Становится:
""v=DKIM1;k=rsa; p=abcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyz""
Используйте это, чтобы разделить DNS TXT запись с ограничением в 255 символов
https://www.mailhardener.com/tools/dns-record-splitter
Просто возьмите текст внутри v=
"default._domainkey.blabla.app. 1 IN TXT "v=DKIM1; k=rsa; p=asdfjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq9BqhK5AKY7d8aE3hEqUaqdth+0Vj9iCYUhl51iNonhJP84wVXvcZe5IRcIAGd7cLSs3nYfL/Nlp8NFIPiOmvjEp6DCVmUw5rQLwz876+umizg/Zg0LYgEUDo8od2YbBBAkNkrpWetaHf2AV+f5NeWio" "ocDMzS80pVuCdQVi/ONW5kJ1Oej/GqSfxg2aFXSN3F06GoyAJ38tCGgGGFJHJWJjP1mIQJGXJ46RsQxM2AKm42KDkROKU3YNjQMXmADwXLHKfr8bRzEUPCcf9zPj8FIpJDspFAiXpTxgOG5w5IlP04v5XjPfoyr+c1A71e1fYaYBpJ4+P6KnZdzcWbvGIQIDAQAB;""
например.
"v=DKIM1; k=rsa; p=asdfjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq9BqhK5AKY7d8aE3hEqUaqdth+0Vj9iCYUhl51iNonhJP84wVXvcZe5IRcIAGd7cLSs3nYfL/Nlp8NFIPiOmvjEp6DCVmUw5rQLwz876+umizg/Zg0LYgEUDo8od2YbBBAkNkrpWetaHf2AV+f5NeWio" "ocDMzS80pVuCdQVi/ONW5kJ1Oej/GqSfxg2aFXSN3F06GoyAJ38tCGgGGFJHJWJjP1mIQJGXJ46RsQxM2AKm42KDkROKU3YNjQMXmADwXLHKfr8bRzEUPCcf9zPj8FIpJDspFAiXpTxgOG5w5IlP04v5XjPfoyr+c1A71e1fYaYBpJ4+P6KnZdzcWbvGIQIDAQAB;"
Вот как я заставил работать 2048-битный DKIM на AWS Route 53. Изначально он был такой и не сработал
“v=DKIM1; k=rsa;”
“p=MII…КонецКлючаПервого” “4tOt…КонецКлючаВторого”
Вот что сработало ниже:
“v=DKIM1; k=rsa; p=”
“MII…КонецКлючаПервого” “4tOt…КонецКлючаВторого”
Примечание: (1) Это просто один пробел, который разделял двойные кавычки ключа первого от ключа второго, а не разделение строк. (2) Первый ключ начинался на новой строке с двойным знаком кавычек (я предположил, что он все еще может начинаться с тех же спецификаций v & k и все еще сработает). (3) Этот тег p (тег открытого ключа) был вставлен в открытые и закрытые двойные кавычки, которые начинают значение, то есть “v=DKIM1; k=rsa; p=” (4) Точка 3 выше на самом деле является недостающим кусочком головоломки, который завершает конфигурацию.
DNS Lightsail в настоящее время: “” и “” вокруг всей записи, затем “…” вокруг фрагментов менее 256, затем одна новая строка между каждым фрагментом.
"""k=rsa; p=kldsjlk...."
"kljkldasfdslk..."""
2025 – AWS Route53
Просто разбейте значение на “” для получения 3 частей
Например:
Пример оригинального значения:
"abcdefghijklmnopqrstuvwxyz"
Разделенное значение, но на одной строке и без пробелов
"abcdefgh""ijklmnopq""rstuvwxyz"
Это должно работать!
Ответ или решение
Решение проблемы с добавлением DKIM-ключей в Route 53 из-за превышения длины
При работе с DKIM (DomainKeys Identified Mail) для защиты электронной почты, может возникнуть ситуация, когда вы сталкиваетесь с ошибкой, связанной с превышением максимальной длины строки TXT записи в AWS Route 53. Давайте разберемся, как правильно добавить DKIM-ключи в Route 53, чтобы избежать таких проблем.
Причина проблемы
Сообщение об ошибке "TXTRDATATooLong" указывает на то, что строка, которую вы пытаетесь добавить, превышает лимит, установленный для записей TXT. Согласно стандартам DNS, максимальная длина одной строки текстовой записи составляет 255 символов. Однако вы можете использовать несколько строк для создания одной записи TXT, если они разделены пробелами.
Принципы разделения DKIM-ключа
Когда вы работаете с вашим DKIM-ключом, важно разбить его на части не длиннее 255 символов. Вот основные шаги, которые помогут вам в этом процессе:
-
Разделите строку на части: Вы можете произвольно разбить вашу строку, обращая внимание на максимальную длину 255 символов. Не забывайте, что каждая часть должна быть заключена в кавычки.
-
Удалите переносы строк: Важно, чтобы части DKIM-ключа были разделены пробелами, а не переносами строк. Пример ошибочного и правильного разделения показан ниже:
-
Неправильно (переносы строк):
"v=DKIM1; k=rsa; p=abcd...part1 abcd...part2"
-
Правильно (пробелы):
"v=DKIM1; k=rsa; p=abcd...part1" "abcd...part2"
-
-
Пример разбивки DKIM-ключа: Предположим, ваш DKIM-ключ выглядит следующим образом:
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9..."
Вы можете разбить его на части, например:
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwztXzIU..." "U5v4W4ENbciFWyBkymsmm..."
Порядок действий в консоли AWS
- Перейдите в AWS Management Console и выберите Route 53.
- Выберите ваш домен и создайте или отредактируйте существующую запись типа TXT.
- В поле значений каждой строки добавьте ваши части DKIM-ключа, используя описанный формат:
"первая часть" "вторая часть" "третья часть"
- Убедитесь, что записи сохранены.
Проверка и тестирование
После успешного добавления DKIM-записи в Route 53, важно проверить, что все правильно настроено. Вы можете использовать онлайн сервисы, такие как DKIMValidator, чтобы убедиться, что ваша подпись читается корректно и все ключи действительны.
Заключение
Следуя указанным рекомендациям, вы сможете успешно добавить DKIM-ключи в AWS Route 53, избежав проблем с превышением длины строки. Разделение ключей на части и использование правильного формата записи позволит вам корректно настроить вашу электронную почту для повышения её безопасности. Если у вас возникнут дополнительные вопросы, вы всегда можете обратиться к документации AWS или профессиональным консультантам в области IT.