それで、私は少し眠れなくなりました。ネットを探し回って、ライブラリや説明などを見つけましたが、電子メールに追加するドメイン キー署名を作成するためのステップ バイ ステップ ガイドは見つかりませんでした。 PHP プログラムから送信された認証済みメールに署名するためのヘッダー。実際、私はいくつかの指示を見つけましたが、ステップが欠けているように見えます!
Jeff Atwood の「So You'd Like to Send Some Email (Through Code)」を読むと、私は大いに助けられ、実際にこれらすべての署名方法について知ることができました。これまでのところ、私は持っています:
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 "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBMSQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cwO7AacgSInDf+QjOE+QIDAQAB"
そこには、キーを利用する TXT レコードが表示されます。
これは、openssl コマンドで生成された私の公開鍵です -- ファイル 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-Signature: a=rsa-sha1; s=truthuniversal;d=truthuniversal.com;c=simple;q=dns;b=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdxr0auyWOszMhdPW0LR3/Duf3t6XcvlwTpYuoS1lzCuT35voqcEhctCh2dTzq2RAXOrinbG8HuTg/IBde3GWaRwBMSQRJ/ZwiNZHomMfqnZEhC9MT+J9OAEbm5TdwZ0HcIOKGBGi0fZvhYs5kw34mk0cwO7AacgSInDf+QjOE+QIDAQAB;
私は何が欠けていますか?
次のステップはありますか?