ฉันมีปัญหาที่ลายเซ็น DKIM ของฉันล้มเหลวทุกที่ มีคำถามเกี่ยวกับเรื่องนี้ ที่นี่แต่ผู้โพสต์ต้นฉบับตอบคำถามของเขาเอง และคำตอบดูเหมือนไม่เกี่ยวข้องกันหลังจากการขุดคุ้ย ฉันคิดว่านี่อาจเป็นปัญหาการกำหนดมาตรฐานของ OpenDKIM และนั่นคือ แก้ไขCRLF
การตั้งค่า config อาจแก้ไขได้ แต่ดูเหมือนว่าจะไม่ได้ดำเนินการดังกล่าว ตอนนี้ฉันคิดว่าอาจมีปัญหากับการใช้งาน openssl ของฉัน (ดูสาเหตุด้านล่าง) ฉันจะดำเนินการต่อจากนี้เพื่อวินิจฉัยและแก้ไขปัญหานี้ต่อไปได้อย่างไร
ขั้นตอนการวินิจฉัยของฉันจนถึงปัจจุบัน
สิ่งนี้เกิดขึ้นเมื่อฉันสังเกตเห็นว่าอีเมลจากโดเมนที่โฮสต์เองไปยังบัญชี gmail ของฉันมีความล้มเหลวของ DKIM ในส่วนหัว หลังจากกูเกิลหาวิธีทดสอบสิ่งนี้ ฉันค้นพบว่า OpenDKIM README รวมถึงส่วนที่เกี่ยวกับการทดสอบ ดูเหมือนว่าจะล้าสมัยไปเล็กน้อย เนื่องจากทรัพยากรบางส่วนใช้การไม่ได้ ([email protected] ดูเหมือนจะไม่มีอยู่จริง และ [email protected] ตีกลับข้อความว่าเป็นสแปม ซึ่ง ... ไม่เหมาะสำหรับบริการทดสอบ :) ); อย่างไรก็ตาม ตัวตรวจสอบความถูกต้องของ Port25 ในขั้นต้นดูเหมือนจะมีประโยชน์จริง ๆ เพราะพวกมันไม่เพียงแค่บอกคุณว่าคุณล้มเหลว แต่ยังรวมส่วนหัวที่บัญญัติไว้ด้วย ดังนั้นการทดสอบครั้งแรกของฉันกลับมาพร้อมกับสิ่งนี้:
ส่วนหัวที่ยอมรับ:
จาก:My'20'Name'20'<[email protected]>'0D''0A'
เรื่อง:Port25'20'check-auth'20'1'0D''0A'
วันที่:ศ.'20'1'20'ต.ค'20'2021'20'07:10:19'20'+0200'0D''0A'
ถึง:[email protected]'0D''0A'
dkim-signature:v=1;'20'a=rsa-sha256;'20'c=relaxed/relaxed;'20'd=mydomain.com;'20's=default;'20't=1633065019;'20' bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=;'20'h=จาก:เรื่อง:วันที่:ถึง:จาก;'20'b=
ฉันเปิดเครื่องแล้ว KeepTemporaryFiles
ใน opendkim.conf
และส่วนหัว conanicalized ที่บันทึกไว้ในฝั่งเซิร์ฟเวอร์ของฉันมีลักษณะดังนี้:
จาก:ชื่อของฉัน <[email protected]>
เรื่อง:การตรวจสอบสิทธิ์ Port25 1
วันที่:ศุกร์ 1 ต.ค. 2564 07:10:19 น. +0200
ไปที่:[email protected]
ลายเซ็น dkim:v=1; a=rsa-sha256; c=ผ่อนคลาย/ผ่อนคลาย; d=mydomain.com; s=ค่าเริ่มต้น; t=1633065019; bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=; h=จาก:เรื่อง:วันที่:ถึง:จาก; ข=
ในสายตาของฉัน มันดูเหมือนกัน แต่ฉันเริ่มสงสัยเกี่ยวกับ '0D''0A' ที่ฝั่ง Port25 ฉันส่งข้อความต้นฉบับจาก Mac และจริงๆ แล้วฉันไม่รู้ว่า MacOS ใช้กับ EOL อย่างไร กูเกิลเพิ่มเติมและฉันก็สะดุดกับสิ่งนี้ ถามตอบสแต็กโอเวอร์โฟลว์. นั่นทำให้ฉันลองส่งอีเมลแบบข้อความธรรมดาก่อน แต่ปัญหาความล้มเหลวเดียวกันก็เกิดขึ้น ฉันเปิดใช้ตัวเลือกอื่น แก้ไขCRLF
ใน OpendDKIM แน่นอน การเปิดไฟล์ temp ในเครื่องด้วย vim ในโหมดไบนารี ดูเหมือนว่าการตั้งค่าจะทำงาน:
จาก:ชื่อของฉัน <[email protected]>^M
เรื่อง: ทดสอบด้วย CRLF คงที่ (?)^M
วันที่:ศุกร์ 1 ต.ค. 2564 07:40:52 +0200^M
ถึง:[email protected]^M
ลายเซ็น dkim:v=1; a=rsa-sha256; c=ผ่อนคลาย/ผ่อนคลาย; d=mydomain.com; s=ค่าเริ่มต้น; t=1633066853; bh=tt5a2hZTsPGjeXhj9bcF3Kt9N5uk4aYb/j8ciXTYUZA=; h=จาก:เรื่อง:วันที่:ถึง:จาก; ข=
น่าเสียดายที่ยังไม่มีความรักจากตัวตรวจสอบ Port25
จากความพยายามครั้งสุดท้ายของฉัน บังเอิญได้ลองสิ่งนี้บนเซิร์ฟเวอร์ของฉันเอง â ส่งอีเมลระหว่างสองโดเมนที่แตกต่างกันซึ่งโฮสต์ในเครื่องทั้งคู่ อย่างน้อยสิ่งนี้ก็น่าสนใจไม่น้อย
บันทึกจดหมายระบุว่า:
...
1 ตุลาคม 05:50:27 ip-10-0-200-157 opendkim[22246]: 654F98004C: เพิ่มฟิลด์ DKIM-Signature (s=default, d=mydomain.com)
...
1 ต.ค. 05:50:27 น. ip-10-0-200-157 amavis[21845]: (21845-06) กำลังตรวจสอบ: hRgGGArUlLf0 [88.101.121.213] <[email protected]> -> <[email protected]>
...
1 ต.ค. 05:50:29 น. ip-10-0-200-157 amavis[21845]: (21845-06) hRgGGArUlLf0 FWD จาก <[email protected]> -> <[email protected]>, BODY=7BIT 250 2.0.0 จาก MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 ตกลง: เข้าคิวเป็น 5248A80051
1 ต.ค. 05:50:29 น. ip-10-0-200-157 amavis[21845]: (21845-06) ผ่าน CLEAN {RelayedInbound}, [88.101.121.213]:63859 [88.101.121.213] <[email protected] > -> <[email protected]>, Queue-ID: 654F98004C, Message-ID: <[email protected]>, mail_id: hRgGGArUlLf0, Hits: -0.799, ขนาด: 3683, queued_as: 5248A80051, 1878 มิลลิวินาที
อย่างไรก็ตาม ฉันเห็นในส่วนหัวจริงของจดหมายที่ได้รับ
...
สถานะสแปม X: ไม่ คะแนน=-0.799 การทดสอบ=[ALL_TRUSTED=-1, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HTML_MESSAGE=0.001] autolearn=no autolearn_force=no
Dkim-ลายเซ็น: v=1; a=rsa-sha256; c=ผ่อนคลาย/ผ่อนคลาย; d=mydomain.com; s=ค่าเริ่มต้น; t=1633067427; bh=+FsxBlX8LDcIVqvq7tKOtml1vsfEjh0rYTRVokBgmQ4=; h=จาก:เรื่อง:วันที่:ถึง:จาก; b=yDkI63wnvN8deIU4AtruGu4r/ybCTBLzmdwkTEhSYNCU56oGp0lP8n4FnXW7H67TL DFtlw/U9/MZPhR0Jeorl3gBdLebBV02v60wpLlFKXF5N4NL/cZbp8/U0liGZGVPoWj PP+OV/uOwNMDUhLG2I8jN88Zi9sHduo8xr7DOmy4=
...
ตัวกรอง Dkim: ตัวกรอง OpenDKIM v2.11.0 ip-10-0-200-157.eu-central-1.compute.internal 654F98004C
...
ผลการพิสูจน์ตัวตน: mx.mymaildomain.com (amavisd-new); dkim=fail (คีย์ 1024 บิต) reason="fail (ข้อผิดพลาด OpenSSL: ข้อมูลใหญ่เกินไปสำหรับโมดูลัส)" header.d=mydomain.com
บรรทัดสุดท้ายคือเบาะแสเดียวที่เหลืออยู่ของฉัน ฉัน ... นึกภาพไม่ออกว่าข้อมูลใด ๆ มีขนาดใหญ่เกินไปจริง ๆ แต่บางทีฉันอาจมีปัญหาเกี่ยวกับ OpenSSL โดยเฉพาะอย่างยิ่งแม้ว่าจะใช้ลายเซ็น แต่ลายเซ็นนั้นผิดอย่างไร? ฉันค่อนข้างหลงทางที่จะไปจากที่นี่
ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ผิดพลาดหรือจะทำอย่างไรต่อไป ชื่นชมมาก
นี่คือ OpendDKIM, AmavisD, Postfix:
# opendkim -V
opendkim: ตัวกรอง OpenDKIM v2.11.0
รวบรวมด้วย OpenSSL 1.0.1e-fips 11 ก.พ. 2556
SMFI_VERSION 0x1000001
libmilter รุ่น 1.0.1
อัลกอริทึมการลงนามที่รองรับ:
rsa-sha1
rsa-sha256
อัลกอริธึมการกำหนดมาตรฐานที่รองรับ:
ผ่อนคลาย
เรียบง่าย
ตัวเลือกรหัสที่ใช้งานอยู่:
QUERY_CACHE
USE_DB
USE_LDAP
USE_ODBX
libopendkim 2.11.0:query_cache
#amavisd -V
amavisd-new-2.12.0 (20190725)
# postconf mail_version
mail_version = 2.10.1