Я настраиваю новый сервер с Debian 8. Exim4 предустановлен, и я пытаюсь заставить TLS работать.
Я скопировал ключ snakeoil и сертификат в папку / etc / exim4 и установил правильные разрешения и права собственности:
-r--r----- 1 root Debian-exim 1704 Sep 28 20:01 ssl-cert-snakeoil.key
-r--r----- 1 root Debian-exim 1257 Sep 28 20:01 ssl-cert-snakeoil.pem
Я настроил их в Exim4
Затем со второго сервера я пытаюсь подключиться к SMTP и запустить TLS следующим образом:
root@second: ~# telnet mynewserver.net.au 25
Trying xxx.xxx.xxx.xxx...
Connected to mynewserver.net.au.
Escape character is '^]'.
220 mynewserver.net.au ESMTP Exim 4.84_2 Wed, 28 Sep 2016 20:12:12 +1000
ehlo second
250-mynewserver.net.au Hello second [xxx.xxx.xxx.xxx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
STARTTLS
454 TLS currently unavailable
А журнал отладки mynewserver выглядит так:
665 SMTP>> 250-mynewserver.net.au Hello second [xxx.xxx.xxx.xxx]
665 250-SIZE 52428800
665 250-8BITMIME
665 250-PIPELINING
665 250-STARTTLS
665 250 HELP
665 SMTP<< STARTTLS
665 initialising GnuTLS as a server
665 GnuTLS global init required.
665 initialising GnuTLS server session
665 Expanding various TLS configuration options for session credentials.
665 certificate file = '/etc/exim4/ssl-cert-snakeoil.pem'
665 key file = '/etc/exim4/ssl-cert-snakeoil.key'
665 LOG: MAIN
665 TLS error on connection from second (second) [xxx.xxx.xxx.xxx] (cert/key setup: cert='/etc/exim4/ssl-cert-snakeoil.pem' key='/etc/exim4/ssl-cert-snakeoil.key'): Error while reading file.
665 SMTP>> 454 TLS currently unavailable
Я проверил сертификаты, что ключ и сертификат совпадают, как в следующем тесте, где модуль одинаков:
root@mynewserver: exim4# openssl x509 -noout -modulus -in ssl-cert-snakeoil.pem | openssl md5
(stdin)= 4d56fe03bcdc3103788344d0d7a2eb8d
root@mynewserver: exim4# openssl x509 -noopenssl rsa -noout -modulus -in ssl-cert-snakeoil.key | openssl md5
(stdin)= 4d56fe03bcdc3103788344d0d7a2eb8d
Я также настроил новый сервер, чтобы позволить Debian-exim входить в систему, входить в систему и без проблем просматривать файлы сертификатов.
Все мои исследования выявили проблемы с читаемостью сертификатов, с правильным содержимым, соответствием и правильными разрешениями или с правильным указанием в конфигурации exim4. Я рассмотрел все эти области, но все равно ничего не вышло.
У тебя есть идеи, где я должен проверить дальше?
Это буквальное значение - он действительно не может прочитать файл [сертификат]. Я пробовал добавлять в свой файл конфигурации различные записи, например:
tls_certificate=xxx.crt
tls_privatekey=xxx.key
и
MAIN_TLS_CERTIFICATE=xxx.crt
MAIN_TLS_PRIVATEKEY=xxx.key
Но, похоже, ничего из этого не работает. По умолчанию exim4 ищет CONFIGDIR / exim.crt и CONFIGDIR / exim.key (CONFIGDIR для моего / etc / exim4)
Итак, скопируйте свой сертификат и ключ к этим двум именам файлов. Удалите все ранее добавленные записи конфигурации, так что exim4 будет искать записи по умолчанию, не отвлекаясь. Убедитесь, что ваш сертификат и ключ доступны для чтения exim4:
HTH
Я столкнулся с той же проблемой после обновления сертификатов Let's Encrypt. Для протокола: Thunderbird жаловался на то, что
Невозможно установить безопасное соединение с сервером исходящей почты (SMTP) smtp.example.org с помощью STARTTLS, поскольку он не рекламирует эту функцию. Отключите STARTTLS для этого сервера или обратитесь к поставщику услуг.
Оказалось, что у нового закрытого ключа сертификата недостаточно прав на чтение, мне пришлось chmod a+r
это - нет exim4
необходим перезапуск.