DKIM-Fehler: Der öffentliche Schlüssel scheint ungültig zu sein

DKIM-Fehler: Der öffentliche Schlüssel scheint ungültig zu sein

Ich habe mit Puttygen ein öffentliches/privates RSA-Schlüsselpaar erstellt. Ich habe den folgenden Eintrag zu DNS hinzugefügt, aber DKIM schlägt fehl. Es scheint, dass es Probleme mit meinem öffentlichen Schlüssel gibt. Ich habe es mit überprüfthttps://dkimcore.org/c/keycheckund festgestellt, dass es nicht gültig ist.

v=DKIM1; k=rsa; h=sha256; p=AAAAB3NzaC1yc2EAAAABJQAAAQEArv5BxLaIE0HYkr1RSIqhAUUZ3OPiV81e8d0Q7Iv2jIQ9LCxnw831HteCwMFzry352dW2UfbmjVMesNOiyZWrE2oHYCG/hQ6ocl5KIY/cNrymZYkzFgnG/HeQBU+YZWkRyT7tNzG6IhgFBs7BZdO1iyEJNaAjsdXZJuv7H2Z4r5aDk8n1A0bzfYGhiIX4uSyUbV6T5njsfBX7Un0IBvf/nbEj6NJ+idF0puoz0gWffRWu1zoJfFs8ddjHSGsp4bKQjsm6msAvc7LZ6csmNec1G9UdUAzd+rxETaRIew7p3E6PiPbTfGuLr283V+SZMMume6bgyK3Bg7/bKv80vD71mw==

Ist etwas mit meiner Syntax nicht in Ordnung?

Antwort1

Ja. Der Schlüssel selbst muss in einem bestimmten Format verpackt sein und Sie verwenden das falsche.

Ein RSA-Schlüsselpaar ist nicht einfach ein Stück zufälliger Text – es besteht intern aus ein paar großen Zahlen, und verschiedene Programme haben unterschiedliche Möglichkeiten, diese Zahlen in Bytes zu kodieren (sie zu serialisieren). Zum Beispiel:Nkönnte gehen vortoder danach; sie können im Big-Endian- oder Little-Endian-Format gespeichert werden usw. Einige Formate verfügen über ein Feld, das den Schlüsseltyp selbst angibt, andere nicht.

Der Text, den Sie verwenden möchten, p=ist im SSHv2-Format. DKIM erfordert jedoch, dass er im PKCS#1-Format „RSAPublicKey“ (auch bekannt als OpenSSL PEM-Format) vorliegt, obwohl sich die DKIM-Spezifikation später selbst widerspricht, indem sie ein Beispiel im X.509-Format „SubjectPublicKeyInfo“ zeigt, und viele Implementierungen akzeptieren tatsächlich beides.

PuTTYgen kann ausgebenwederdieser öffentlichen Schlüsselformate – müssen Sie ein anderes Tool verwenden. Am besten verwenden Sie die Schlüsselgenerierungstools, die Ihre DKIM-Signatursoftware bereitstellt.

(Wenn Ihre DKIM-Software über keines verfügt, opensslsollte der Befehl die Aufgabe erfüllen – mit den Befehlen genrsaund genpkeykönnen Sie dann ein neues Schlüsselpaar erstellen rsaoder pkeydie öffentliche Hälfte extrahieren.)

verwandte Informationen