Посмотрите пошаговое руководство по созданию подписи Domain-Key для PHP

Итак, я немного поспал, я искал сеть и нашел библиотеки, объяснения и т. Д., Но я не нашел пошагового руководства по созданию подписи ключа домена для добавления в электронное письмо. заголовок для подписи моей аутентифицированной электронной почты, отправленной из программы PHP. На самом деле, я нашел некоторые инструкции, но всегда кажется, что шаг отсутствует!

Чтение Джеффа Этвуда "Итак, вы хотели бы отправить электронное письмо (через код)" очень помогло мне и фактически информировало обо всех этих методах подписания. На данный момент у меня есть:

  • Создал пару открытый / закрытый ключ, используя openVPN и следующие команды openssl

    1. openssl genrsa -out rsa.private 1024 -

    2. openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM

  • Добавлены ли необходимые записи TXT DNS (глобальная политика и открытый ключ base64)

  • Добавлены (как представляется) необходимые параметры в заголовок письма

Тем не менее, при использовании отчета аутентификации Port25 возвращается:

DomainKeys проверить детали:
----------------------------------------------------------
Результат: неудача (плохая подпись)
ID подтверждены: header.From=truth@truthuniversal.com
DNS-запись (и):
    truthuniversal._domainkey.truthuniversal.com. 86400 IN TXT "к = RSA; р =MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBMSQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cwO7AacgSInDf+QjOE+QIDAQAB"

Вы можете увидеть там запись TXT, которая использует ключ.

Вот мой открытый ключ, созданный командой openssl - file rsa.public:

----- НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ -----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3
t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBM
SQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cw
O7AacgSInDf+QjOE+QIDAQAB
----- КОНЕЦ ОБЩЕСТВЕННОГО КЛЮЧА -----

В PHP я создаю заголовок следующим образом:

  $pkey="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBMSQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cwO7AacgSInDf+QjOE+QIDAQAB";

    $dkeysig = "DomainKey-Signature: a=rsa-sha1;
     s=truthuniversal;d=truthuniversal.com;c=simple;q=dns;b=$pkey;" 

    $newLine = "\r\n";

    //Construct Headers  
    $headers = "MIME-Version: 1.0" . $newLine;  
    $headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine; 
    $headers .= "$dkeysig" . $newLine;

Когда я проверяю заголовок полученного сообщения, это выглядит так:

DomainKey-Подпись: a=rsa-sha1; s=truthuniversal; д =truthuniversal.com; с = простой; д = DNS; б =MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBMSQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cwO7AacgSInDf+QjOE+QIDAQAB;

Что мне не хватает?

Есть ли еще один шаг?

0 ответов

Другие вопросы по тегам