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

Courier imap-ssl и несколько доменов

Я успешно настроил courier + postfix для работы с несколькими доменами электронной почты на одном сервере. На данный момент у меня есть эти строки в / 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 12.04.

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