Încerc să diagnosticez erorile de validare OpenDKIM (vezi această întrebare). Jos, în burta fiarei, sunt în punctul în care încerc să mă asigur că cheile generate sunt de fapt corecte.
Îmi generez cheile cu opendkim-genkey -r -d example.com. Aceasta generează două fișiere. Una este o cheie privată RSA (fișier implicit.private):
-----BEGIN RSA PRIVATE KEY-----
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=
-----END RSA PRIVATE KEY-----
și unul generează intrarea DKIM DNS, care presupun că conține cheia publică:
default._domainkey IN TXT ("v=DKIM1; k=rsa; s=email; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMwIDAQAB" ) ; ----- Cheia DKIM implicită pentru example.com
Presupun că intrarea „p=" este cheia publică, dar dacă este, nu îmi pot da seama cum să verific dacă se potrivesc. Am crezut că pot face asta cu ssh-keygen -y -f implicit.privat, cu toate acestea, rezultatul este diferit de ceea ce este în secțiunea „p=" a intrării DNS (nu are nici măcar aceeași lungime):
# ssh-keygen -y -f default.private
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDJy9S18vHtrIQNep9PogJfrKNLKKf2VSOvUwOzItlWkY3cRCFxscSNjfC4QHREcMeUuNO78wvQ+oOk+exLdyl2BggcA659Wi6v8X/+awLXpa9sB6viGPi8Zx560GbZu6jGLlEzcOaGDCYqdUxZIdAaOICDORFa3XAywHi87eQPMw==
Deci, ce se întâmplă aici? Nu este ssh-keygen modul corect de a face acest lucru (poate ar trebui să fac ceva cu OpenSSL?)? „p=" nu este cheia publică? Sau, de fapt, cheile mele private și publice nu se potrivesc?
Mulțumiri!
PS, poate că nu are legătură, ceea ce presupun că este cheia publică generată de opendkim este întotdeauna aceeași pentru primele 34 de caractere â MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ â și se termină întotdeauna în IDAQAB.