Puttygenで公開/秘密RSAキーペアを作成しました。次のレコードをDNSに追加しましたが、DKIMは失敗します。公開キーに問題があるようです。https://dkimcore.org/c/keycheckそしてそれは有効ではないことがわかりました。
v=DKIM1; k=rsa; h=sha256; p=AAAAB3NzaC1yc2EAAAABJQAAAQEArv5BxLaIE0HYkr1RSIqhAUUZ3OPiV81e8d0Q7Iv2jIQ9LCxnw831HteCwMFzry352dW2UfbmjVMesNOiyZWrE2oHYCG/hQ6ocl5KIY/cNrymZYkzFgnG/HeQBU+YZWkRyT7tNzG6IhgFBs7BZdO1iyEJNaAjsdXZJuv7H2Z4r5aDk8n1A0bzfYGhiIX4uSyUbV6T5njsfBX7Un0IBvf/nbEj6NJ+idF0puoz0gWffRWu1zoJfFs8ddjHSGsp4bKQjsm6msAvc7LZ6csmNec1G9UdUAzd+rxETaRIew7p3E6PiPbTfGuLr283V+SZMMume6bgyK3Bg7/bKv80vD71mw==
構文に何か問題がありますか?
答え1
はい。キー自体は特定の形式でパッケージ化されている必要があり、間違った形式を使用しています。
RSA 鍵ペアは単なるランダムなテキストではありません。内部的にはいくつかの大きな数字で構成されており、プログラムによってそれらの数字をバイトにエンコード(シリアル化)する方法が異なります。たとえば、ん先に行くかもしれないeまたはそれ以降のキーは、ビッグ エンディアンまたはリトルエンディアンなどで保存される可能性があります。一部の形式には、キー タイプ自体を示すフィールドがありますが、そうでない形式もあります。
使用しようとしているテキストはp=
SSHv2 形式です。ただし、DKIM では PKCS#1「RSAPublicKey」形式 (別名 OpenSSL PEM 形式) であることが求められますが、DKIM 仕様では後で X.509「SubjectPublicKeyInfo」形式の例を示して矛盾していますが、多くの実装では実際に両方を受け入れています。
PuTTYgenは出力できるどちらでもないこれらの公開鍵形式を使用する場合は、別のツールを使用する必要があります。DKIM 署名ソフトウェアが提供する鍵生成ツールを使用するのが最適です。
(DKIM ソフトウェアにキー ペアが付属していない場合は、openssl
コマンドで対応できます。 コマンドgenrsa
とgenpkey
コマンドで新しいキー ペアを作成し、 またはrsa
をpkey
使用して公開キーの半分を抽出します。)