Курьер 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 (я не уверен). Это сообщение указывает на то, что это может произойти в будущих версиях.