ฉันกำลังพยายามวินิจฉัยข้อผิดพลาดในการตรวจสอบ OpenDKIM (ดู คำถามนี้). ลงไปอยู่ในท้องของสัตว์ร้าย ฉันมาถึงจุดที่ฉันพยายามทำให้แน่ใจว่ากุญแจที่สร้างขึ้นนั้นถูกต้องจริงๆ
ฉันกำลังสร้างคีย์ด้วย opendkim-genkey -r -d example.com. สิ่งนี้สร้างไฟล์สองไฟล์ หนึ่งคือคีย์ส่วนตัว RSA (ไฟล์ ค่าเริ่มต้นส่วนตัว):
----- เริ่มต้นรหัสส่วนตัว RSA -----
MIICXAIBAAKBgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFx
scSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6vi
GPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMwIDAQAB
AoGAVSjAvnwlHqEEJVAPNSLwj4Gic9BXeXwakB2fXRSi1YadcEwMNRfJE9fHs2n3
5v4VK60IJbP+05U0wwV5c6t5AgZqpP0GBW8CKUr3BwaF2cJbd+uOXlAm4cx6/S1E
Ocoku0c/vrr3mkO41IuBkB+FRm0y7WXFi7e7M32Tictt0CkCQQDzE08wRLNXxkaM
LyUDMvCtlNzACcmkU73NAHDHhwtrJMMLp7q/s4VIDbmhysoNBblNHJQvA/7zVd13
1CGxbh8/AkEA1IajRLNJ6XTuv9RmK1622BDWix4ogEvbev/zR8ti2JifO6A5gv+L
na5hVAATo563pWjtNZW3sAVKqN7juN5HDQJAP1xKKP/Pa9LQMtxbHoFZwTVrcVdb
y0zUzaoOu8PU0yHrAY/AGxY1aLnDKIxOrKRQT+xiJ/s3qsA4EXMnMTPOSwJBAK5N
dl6EBRyZsK5YDyuG1MNenBEhPOPsTKgGf4rkfj9SfVYzxLdxyxoZyO1R2smZBNl+
wv3tuud8j40MsQwQEYkCQBCzH+1IaxoMsSggutvEvqz2SqkFbD5rq/+uL6P6xyYg
PHCYIWomK8zOlmnO+bfbRIzQb7I81vOFq2sr0yQLK+0=
----- สิ้นสุดรหัสส่วนตัว RSA -----
และสร้างรายการ DKIM DNS ซึ่งฉันคิดว่ามีรหัสสาธารณะ:
default._domainkey ใน TXT ( "v=DKIM1; k=rsa; s=email; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMwIDAQAB" ) ; ----- ค่าเริ่มต้นของคีย์ DKIM สำหรับ example.com
ฉันถือว่ารายการ "p=" เป็นรหัสสาธารณะ แต่ถ้าเป็นเช่นนั้น ฉันไม่สามารถทราบวิธีการตรวจสอบว่าตรงกันหรือไม่ ฉันคิดว่าฉันสามารถทำได้ด้วย ssh-keygen -y -f default.privateอย่างไรก็ตาม ผลลัพธ์ของสิ่งนั้นแตกต่างจากสิ่งที่อยู่ในส่วน "p=" ของรายการ DNS อย่างชัดเจน (มีความยาวไม่เท่ากัน):
# ssh-keygen -y -f default.private
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMw==
แล้วเกิดอะไรขึ้นที่นี่? ssh-keygen ไม่ใช่วิธีที่ถูกต้องในการทำเช่นนี้ (บางทีฉันควรจะทำอะไรบางอย่างกับ OpenSSL?) "p=" ไม่ใช่รหัสสาธารณะหรือไม่ หรือความจริงแล้วคีย์ส่วนตัวและคีย์สาธารณะของฉันไม่ตรงกัน?
ขอบคุณ!
ป.ล. อาจไม่เกี่ยวข้องกัน สิ่งที่ฉันคิดว่าเป็นรหัสสาธารณะที่สร้างโดย opendkim นั้นเหมือนกันเสมอสำหรับอักขระ 34 ตัวแรก â MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ â และลงท้ายด้วยเสมอ ไอดาคิว.