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