ฉันมี Postfix Ubuntu VM ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ส่งต่อเมล ซึ่งรับเมลที่พอร์ต 25 และส่งต่อไปยัง Microsoft Exchange ทางออนไลน์เพื่อการจัดส่ง มันใช้งานได้ดีมาหลายเดือนแล้ว
ตอนนี้ฉันต้องอนุญาตให้ไคลเอ็นต์ SMTP ซึ่งต้องใช้ TLS เพื่อส่งอีเมลผ่านการส่งต่อด้วย ฉันได้เพิ่มสิ่งต่อไปนี้ใน Postfix main.cf ของฉันแล้ว:
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1
smtpd_tls_chain_files =
${cert_path}/cert.pem,
${cert_path}/chain.pem
อย่างไรก็ตามเมื่อฉันลอง swaks ด้วยแฟล็ก --tls-on-connect ฉันได้รับ "การเชื่อมต่อถูกปฏิเสธ" บนพอร์ต 465 และ 587 พอร์ตเก่าที่ไม่ได้เข้ารหัส 25 รายการยังคงใช้งานได้ ไฟล์ pem ถูกสร้างขึ้นโดย Let's Encrypt และส่วนเคาน์เตอร์คีย์ส่วนตัวทำงานเพื่อเข้ารหัสจดหมายขาออกไปยัง Exchange ออนไลน์ ฉันได้ตรวจสอบพวกเขาด้วย:
openssl verify -purpose sslserver -partial_chain -CAfile /etc/letsencrypt/live/<server FQDN>/chain.pem /etc/letsencrypt/live/<server FQDN>/cert.pem
อย่างไรก็ตาม เมื่อฉันพยายามทำการเชื่อมต่อ TLS จากไคลเอนต์ SMTP สิ่งนี้จะปรากฏในบันทึก:
Mar 18 14:41:49 hermes postfix/smtpd[578652]: warning: error loading chain from /etc/letsencrypt/live/<server FQDN>/cert.pem: key not first
Mar 18 14:41:49 hermes postfix/smtpd[578652]: warning: error loading private keys and certificates from: /etc/letsencrypt/live/<server FQDN>/cert.pem,?/etc/letsencrypt/live/<server FQDN>/chain.pem: disabling TLS support
ฉันคิดว่าคำถามที่ฉันกำลังเผชิญคือวิธีใช้ใบรับรอง Let's Encrypt SSL เพื่อเปิดใช้งาน TLS บนเซิร์ฟเวอร์ส่งต่อเมลของฉัน