Назад | Перейти на главную страницу

Exim говорит: «Запрос недействителен» во время gnutls_handshake

У меня есть Debian wheezy и я настроил Exim для прослушивания порта 587, где пользователи могут аутентифицироваться с помощью TLS. Тестирую с Thunderbird 31.1.2. Когда я пытаюсь отправить сообщение, Thunderbird отображает следующее:

Отправка сообщения не удалась. Сообщение не может быть отправлено, поскольку соединение с SMTP-сервером smtp.gaspatchmodels.com было потеряно в середине транзакции. Попробуйте еще раз или обратитесь к администратору сети.

Exim показывает это в главном журнале:

2014-09-29 18:03:22 Ошибка TLS при подключении с ppp-94-68-63-22.home.otenet.gr ([192.168.1. 68]) [94.68.63.22] (gnutls_handshake): запрос является недействительным.

Если я обнюхиваю трафик, я вижу, что клиент говорит «STARTTLS», сервер отвечает «220 TLS, вперед», а затем клиент отправляет двоичные данные, после чего соединение кажется разорванным.

Если я сбегу exim с участием -d, вот что я получаю:

15332 SMTP<< STARTTLS
15332 initialising GnuTLS as a server
15332 GnuTLS global init required.
15332 initialising GnuTLS server session
15332 Expanding various TLS configuration options for session credentials.
15332 certificate file = /etc/exim4/exim.crt
15332 key file = /etc/exim4/exim.key
15332 TLS: cert/key registered
15332 verify certificates = /etc/ssl/certs/ca-certificates.crt size=245341
15332 Added 159 certificate authorities.
15332 Initialising GnuTLS server params.
15332 Loading default hard-coded DH params
15332 Loaded fixed standard D-H parameters
15332 GnuTLS using default session cipher/priority "NORMAL"
15332 host in tls_verify_hosts? no (option unset)
15332 host in tls_try_verify_hosts? no (option unset)
15332 TLS: a client certificate will not be requested.
15332 SMTP>> 220 TLS go ahead
15332 Received TLS SNI "[my domain name]" (unused for certificate selection)
15332 LOG: MAIN
15332   TLS error on connection from ppp-94-68-63-22.home.otenet.gr ([192.168.1.68]) [94.68.63.22] (gnutls_handshake): The request is invalid.
15332 TLS failed to start

Для меня сообщение «Запрос недействителен» означает, что Thunderbird виноват; однако я не могу поверить, что это так, потому что он не работает ни на моем Thunderbird, ни на Thunderbird моего клиента, и потому, что он работал два дня назад (затем я обновился из сжатия, удалил конфигурацию и воссоздал ее с помощью ansible). Я не вижу в конфигурации ничего актуального, кроме

MAIN_TLS_ENABLE = true

в /etc/exim4/conf.d/main/000_localmacros.

Могу ли я получить дополнительную информацию об отладке от gnutls? Например, почему он считает запрос недействительным?

Я обнаружил проблему. Я допустил ошибку в конфигурации: /etc/exim4/exim.crtвместо сертификата хоста + сертификата цепочки содержал закрытый ключ хоста + сертификат цепочки.

Интересно, если это exim или gnutls ошибка. «Запрос недействителен» кажется неподходящим сообщением об ошибке для этой проблемы.