Курьер imap-ssl и несколько доменов

Я успешно настроил курьер + постфикс для работы с несколькими почтовыми доменами на одном сервере. На данный момент у меня есть эти строки в /etc/courier/imap-ssl:

TLS_CERTFILE=/etc/courier/imapd.pem
TLS_TRUSTCERTS=/etc/ssl/certs

Изменение их на это прекрасно работает:

TLS_CERTFILE=/home/certs/certs/certificate.pem.ww2.endofstars.com
TLS_TRUSTCERTS=/home/certs/chains/endofstars.crt

Первый содержит сертификат от органа и мой закрытый ключ. Второй имеет цепочку сертификатов. Thunderbird не показывает моим клиентам сообщение "Никакие легендарные компании не будут использовать неподписанные сертификаты" и работает:

openssl s_client -connect ww2.endofstars.com:993

возвращает это, что заставляет меня думать, что это работает. Но оттуда вниз по склону. Когда я изменяю настройки TLS_CERTFILE на:

TLS_CERTFILE=/home/certs/certs/certificate.pem

Thunderbird снова жалуется на недействительный сертификат. Этот файл не существует, но в документах imap-ssl говорится, что он должен автоматически добавить имя хоста, чтобы найти файл certificate.pem.ww2.endofstars.com. Использование openssl для запроса снова показывает эту ошибку, и mail.log сообщает:

imapd-ssl: couriertls: /home/certs/certs/certificate.pem: error:02001002:system library:fopen:No such file or directory

Это не добавление имени хоста. Комментарии в imap-ssl говорят, что многодоменный подход - "только GnuTLS", но я не уверен, как определить, установлен ли он у меня. Запуск ldd / usr / sbin / couriertcpd показывает:

linux-vdso.so.1 =>  (0x00007fffa75ff000)
libgdbm.so.3 => /usr/lib/x86_64-linux-gnu/libgdbm.so.3 (0x00007fcff8433000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcff8076000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcff8640000)

Но я не знаю, правильно ли я это делаю, или это показало бы, используются ли gnutls. Я на Ubuntu Server 12.04.

1 ответ

Решение

Вы можете узнать, какую библиотеку SSL/TLS использует Courier, набрав ldd /usr/bin/couriertls (это может быть другой путь в другом дистрибутиве).

Вы увидите, что в Ubuntu 12.04 он скомпилирован с использованием OpenSSL (как также указывают зависимости пакетов: см. courier-ssl а также courier-imap-ssl). Если вы хотите, чтобы он был скомпилирован с GnuTLS, вам нужно скачать исходный код пакета (apt-get source courier-ssl) и адаптируйте его конфигурацию, чтобы использовать вместо него GnuTLS (вам, вероятно, придется также установить пакеты GnuTLS и gnutls-dev). Возможно, вам придется прочитать документацию по пакетам Debian/Ubuntu, чтобы узнать, какие параметры нужно изменить. Файлы конфигурации будут находиться под courier-0.66.../debian,

OpenSSL также теперь поддерживает указание имени сервера (что вы и хотите использовать для этого), но это может пока не поддерживаться в Courier (я не уверен). Это сообщение указывает на то, что это может произойти в будущих версиях.

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