Посмотрите пошаговое руководство по созданию подписи Domain-Key для PHP
Итак, я немного поспал, я искал сеть и нашел библиотеки, объяснения и т. Д., Но я не нашел пошагового руководства по созданию подписи ключа домена для добавления в электронное письмо. заголовок для подписи моей аутентифицированной электронной почты, отправленной из программы PHP. На самом деле, я нашел некоторые инструкции, но всегда кажется, что шаг отсутствует!
Чтение Джеффа Этвуда "Итак, вы хотели бы отправить электронное письмо (через код)" очень помогло мне и фактически информировало обо всех этих методах подписания. На данный момент у меня есть:
Создал пару открытый / закрытый ключ, используя openVPN и следующие команды openssl
openssl genrsa -out rsa.private 1024 -
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;
Что мне не хватает?
Есть ли еще один шаг?