dkim fail: открытый ключ не является действительным

335
holap

Я создал пару открытых / закрытых ключей RSA с Puttygen. Я добавил следующую запись в DNS, но dkim не удается. Кажется, есть некоторые проблемы с моим открытым ключом. Я проверил его с помощью https://dkimcore.org/c/keycheck и обнаружил, что он недействителен.

v=DKIM1; k=rsa; h=sha256; p=AAAAB3NzaC1yc2EAAAABJQAAAQEArv5BxLaIE0HYkr1RSIqhAUUZ3OPiV81e8d0Q7Iv2jIQ9LCxnw831HteCwMFzry352dW2UfbmjVMesNOiyZWrE2oHYCG/hQ6ocl5KIY/cNrymZYkzFgnG/HeQBU+YZWkRyT7tNzG6IhgFBs7BZdO1iyEJNaAjsdXZJuv7H2Z4r5aDk8n1A0bzfYGhiIX4uSyUbV6T5njsfBX7Un0IBvf/nbEj6NJ+idF0puoz0gWffRWu1zoJfFs8ddjHSGsp4bKQjsm6msAvc7LZ6csmNec1G9UdUAzd+rxETaRIew7p3E6PiPbTfGuLr283V+SZMMume6bgyK3Bg7/bKv80vD71mw== 

Что-то не так с моим синтаксисом?

1

1 ответ на вопрос

2
grawity

Да. Сам ключ должен быть упакован в определенном формате, а вы используете неправильный.

Пара ключей RSA - это не просто случайный текст - внутренне она состоит из нескольких больших чисел, и разные программы имеют разные способы кодирования этих чисел в байты (их сериализации). Например, n может идти перед e или после него; они могут храниться с прямым порядком байтов или с прямым порядком байтов; и т. д. Некоторые форматы имеют поле, указывающее сам тип ключа, а некоторые нет.

Текст, который вы пытаетесь использовать, p=находится в формате SSHv2. Однако DKIM требует, чтобы он был в формате PKCS # 1 "RSAPublicKey" (он же формат OpenSSL PEM), хотя позже спецификация DKIM противоречит самому себе, демонстрируя пример в формате X.509 "SubjectPublicKeyInfo", и многие реализации действительно принимают и то, и другое.

PuTTYgen не может выводить ни один из этих форматов открытого ключа - вам нужно будет использовать другой инструмент. Лучше всего использовать инструменты генерации ключей, предоставляемые вашим программным обеспечением для подписи DKIM.

(Если ваше программное обеспечение DKIM не поставляется ни с одним, то opensslкоманда должна выполнить эту работу - ее команды genrsaи genpkeyкоманды могут создать новую пару ключей rsaили затем pkeyизвлечь открытую половину.)

Спасибо. Я сгенерировал ключи онлайн, и теперь DKIM работает. holap 6 лет назад 0

Похожие вопросы