Exim DKIM Ошибка: DKIM: подпись не удалась (RC -101) независимо от того, какой закрытый ключ я пытаюсь

У меня есть эта проблема с exim. DKIM не может подписать исходящие письма.

Это вывод /var/log/exim4/mainlog (сжатие Debian):

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 => somebody@gmail.com 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.72 Berkeley DB: Berkeley DB 4.8.30: (9 апреля 2010 г.) Поддержка: 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

/* 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;
} 

Похоже, что существует проблема с анализом ключа RSA, который вы сгенерировали для Exim. Это может быть связано с тем, что генерация ключа не удалась или 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, но ошибка все еще там.

Это раздел конфигурации exim для DKIM (из /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, чтобы избежать проблем с разрешениями

У кого-нибудь есть идеи? Как я могу решить эту проблему и подписать исходящие письма

1 ответ

Я решил эту проблему с 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

Другие вопросы по тегам