web-dev-qa-db-ja.com

Exim DKIMエラー:DKIM:どの秘密鍵を試しても署名に失敗しました(RC -101)

Eximでこの問題が発生します。 DKIMは送信メールへの署名に失敗します。

これは/ var/log/exim4/mainlog出力(Debian Squeeze)です:

2012-08-02 17:11:33 1Sx1k5-0004Tk-9D <= me@my_domain.com U=me P=local S=399
2012-08-02 17:11:33 1Sx1k5-0004Tk-9D DKIM: signing failed (RC -101)
2012-08-02 17:11:33 1Sx1k5-0004Tk-9D => [email protected] R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [173.194.77.27] X=TLS1.0:RSA_ARCFOUR_SHA1:16 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"

実行中のEximのバージョンは次のとおりです。Eximバージョン4.72Berkeley DB:Berkeley DB 4.8.30:(2010年4月9日)サポート:crypteq iconv()IPv6 GnuTLS move_frozen_messages DKIM

私が読んだように ここ

ちょっとジョン、エラー:「DKIM:署名に失敗しました(RC-101)」はエラーコードPDKIM_ERR_RSA_PRIVKEY(src/pdkim/pdkim.hから)です

/* Function success / error codes */
#define PDKIM_OK 0
#define PDKIM_FAIL -1
#define PDKIM_ERR_OOM -100
#define PDKIM_ERR_RSA_PRIVKEY -101
#define PDKIM_ERR_RSA_SIGNING -102
#define PDKIM_ERR_LONG_LINE -103
#define PDKIM_ERR_BUFFER_TOO_SMALL -104

src/pdkim /pdkim.cの1か所にのみ返されます

/* Perform private key operation */ 
if(rsa_parse_key(&rsa, (unsigned char *)sig->rsa_privkey,
strlen(sig->rsa_privkey), NULL, 0) != 0) {
return PDKIM_ERR_RSA_PRIVKEY;
} 

したがって、Exim用に生成したRSAキーの解析に問題があるようです。これは、キーの生成に失敗したか、eximにファイルへのアクセス権(ファイルのアクセス許可)がないことが原因である可能性があります。私はあなたの証明書を再生成しようとすることから始めます。

したがって、問題は秘密鍵にあります。

さまざまなキーを生成しようとしましたが、使用する秘密キーに関係なく、Eximはログを記録します:DKIM:署名に失敗しました(RC-101)。

私はもう試した:

# openssl genrsa -out dkim.private.key 768

その後

# openssl genrsa -out dkim.private.key 1024

その後

# openssl genrsa -out private.key 768

または

# openssl genrsa -out private.key 1024

私もこれを試しました DKIM Key Generation Wizard しかし、エラーはまだあります。

これは、DKIMのExim構成セクションです(/etc/exim4/exim4.conf.templateから)。

remote_smtp:
  debug_print = "T: remote_smtp for $local_part@$domain"
  driver = smtp

  dkim_domain = my_domain.com
  dkim_selector = dkim
  dkim_private_key = private.key
  dkim_Canon = relaxed

パーミッションの問題を回避するために、使用しているキーは/ etc/exim4にあります

誰かアイデアはありますか?これを解決して送信メールに署名するにはどうすればよいですか

2
charlieindia

秘密鍵への絶対パスを設定することで、eximとdkimでこの問題を解決しました(@cjcに感謝):

最後のDKIM構成セクションは次のようになります。

remote_smtp:
  debug_print = "T: remote_smtp for $local_part@$domain"
  driver = smtp

  dkim_domain = my_domain.com
  dkim_selector = dkim
  dkim_private_key = /absolute/path/to/my/private.key
  dkim_Canon = relaxed

それで全部です!その後、Eximを再起動しました

1
charlieindia