โอเคฉันคิดออกเอง แต่ฉันต้องการโพสต์ขั้นตอนที่นี่เพื่อลูกหลานเพราะมีเอกสารศูนย์ในนี้ (ที่ฉันสามารถหา) และมันก็คาดเดาและตรวจสอบจริง
หลังจากที่ฉันตั้งค่า "โดเมน *" ตามที่อธิบายไว้ข้างต้นก็จะเซ็นชื่อแบบนี้:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=clientdomain.com;
s=main; t=1250005729;
bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=
สังเกตเห็น "d = clientdomain.com" มันกำลังสร้างสิ่งนี้โดยอ้างอิงจากที่อยู่ในอีเมลซึ่งที่อยู่จากนั้นเป็นบางสิ่งเช่น "contact@clientdomain.com" เห็นได้ชัดว่าถ้ามันตรวจสอบโดเมนของลูกค้าและไม่ใช่ของฉันไม่มีระเบียน DNS TXT อยู่ที่นั่นและการตรวจสอบจะล้มเหลว
ดังนั้นฉันพบในเอกสารนี้ว่าคุณสามารถตั้งค่าพารามิเตอร์ KeyList ได้
http://manpages.ubuntu.com/manpages/hardy/man5/dkim-filter.conf.5.html
มันไม่ได้อธิบายสิ่งที่ฉันต้องการจริงๆ แต่ฉันคิดว่าฉันจะเล่นกับมัน ฉันคอมเม้นท์ KeyFile และตั้ง KeyList เป็น "/etc/mail/dkim_domains.key" ซึ่งเป็นชื่อไฟล์ที่ฉันสร้างขึ้นเอง จากนั้นฉันก็สร้างไฟล์นั้นขึ้นมาและใส่ลงไปในไฟล์ "*: feedmailpro.com: /etc/mail/dkim.key" สิ่งนี้จะบอกว่าสำหรับโดเมนลูกค้าใด ๆ ลงชื่อด้วยโดเมนของฉัน (feedmailpro.com) และใช้ไฟล์ dkim.key
รีสตาร์ท DKIM และ postfix
sudo /etc/init.d/dkim-filter restart
sudo /etc/init.d/postfix restart
ตอนนี้นี่คือกุญแจสำคัญที่สร้างขึ้นเมื่อฉันส่งอีเมลทดสอบ
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
s=dkim.key; t=1250005729;
bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=
การปรับปรุงคุณจะเห็น d = ตอนนี้ถูกตั้งค่าเป็นโดเมนของฉัน (แม้ว่าที่อยู่อีเมลจะไม่ใช่โดเมนของฉัน) อย่างไรก็ตาม s = เปลี่ยนเป็น "dkim.key" แทนตัวเลือกที่ฉันเลือกใน dkim-filter.conf ในคำแนะนำการตั้งค่าดั้งเดิมฉันจะตั้งค่าตัวเลือกเป็น "เมล" มันแปลก แต่ฉันสังเกตว่ามันเปลี่ยนเป็นชื่อไฟล์ของคีย์ dkim.key
ดังนั้นฉันจึงไปและเปลี่ยนชื่อ "/etc/mail/dkim.key" เป็น "/ etc / mail / mail" อัปเดตข้อมูลอ้างอิงด้วยใน "/etc/mail/dkim_domains.key"
รีสตาร์ท dkim-filter และ postfix อีกครั้งเหมือนข้างบนและตอนนี้มันก็เริ่มทำงาน นี่คือส่วนหัวสุดท้ายซึ่งลงชื่ออย่างถูกต้องโดยใช้ตัวเลือกที่เหมาะสม (เห็นได้ชัดว่าอิงจากชื่อไฟล์ของคีย์)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
s=mail; t=1250006218;
bh=tBguOuDhBDlhv0m4KF66LG10V/8ijLcAKZ4JbjpLXFM=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=c9eqvd+CY86BJDUItWVVRvI3nibfEDORZbye+sD1PVltrcSBOiLZAxF3Y/4mP6vRX
MUUNCC004oIH1u7FYafgF32lpuioMP1cd7bi6x3AZ5zH4BYETNBnnz4AhAPBtqlIh/
FFMz8jkhhLhcM2hDpwJkuKjAe3LzfNVDP8kD11ZI=
ตอนนี้ s = mail ถูกต้องและ d = feedmailpro.com ถูกต้อง มันได้ผล!
โดยรวมนี่เป็นวิธีที่ยากกว่าที่ฉันคาดไว้และดูเหมือนจะไม่มีเอกสารประกอบเกี่ยวกับวิธีการทำเช่นนี้ (การลงชื่อสำหรับโดเมนขาออกทั้งหมด) แต่ฉันเดาว่าเป็นซอฟต์แวร์โอเพ่นซอร์สดังนั้นฉันจึงไม่สามารถบ่นได้
หมายเหตุสุดท้ายสุดท้ายเพื่อตรวจสอบว่ามีการตั้งค่าระเบียน TXT DNS อย่างถูกต้องหรือไม่คุณสามารถทำคำสั่งเช่นเดียวกับโดเมนของคุณ
dig mail._domainkey.feedmailpro.com TXT
อาจจำเป็นต้องติดตั้ง dig (sudo apt-get install dig) หากคุณใช้ตัวจัดการ Slicehost เพื่อเพิ่มรายการ DNS คุณจะต้องป้อนระเบียน TXT เช่นนี้
Type: TXT
Name: mail._domainkey
Data: k=rsa; t=s; p=M5GfMA0...YOUR LONG KEY...fIDAQAB
TTL seconds: 86400
ฉันไม่เข้าใจว่าทำไมชื่อจึงถูกตั้งค่าเป็น "mail._domainkey" โดยไม่มีจุดสิ้นสุดหรือไม่มีโดเมนของฉันเช่น "mail._domainkey.feedmailpro.com" แต่อะไรก็ตามมันก็ใช้ได้เหมือนกันดังนั้นฉันจึงมีความสุข
หากคุณพยายามทำซ้ำนี่คือคำแนะนำที่ฉันเริ่มต้นด้วย:
https://help.ubuntu.com/community/Postfix/DKIM