Linux

Courier imap-ssl 和多個域

  • June 14, 2012

我已成功設置 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

返回this,這讓我認為它正在工作。但從那裡開始走下坡路。當我將 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 上。

您可以通過鍵入來找出 Courier 正在使用的 SSL/TLS 庫ldd /usr/bin/couriertls(這可能是另一個發行版上的不同路徑)。

您會在 Ubuntu 12.04 上看到,它是針對 OpenSSL 編譯的(因為包依賴項也表明:請參閱courier-sslcourier-imap-ssl)。如果您希望它針對 GnuTLS 進行編譯,則必須下載包源 ( apt-get source courier-ssl) 並調整其配置以使用 GnuTLS(您可能還必須安裝 GnuTLS 和 gnutls-dev 包)。您可能需要閱讀 Debian/Ubuntu 打封包檔以找到要更改的選項。配置文件將位於courier-0.66.../debian.

OpenSSL 現在還支持伺服器名稱指示(這是您想要使用的),但是 Courier 可能還不支持(我不確定)。此消息似乎表明它可能會在未來的版本中發生。

引用自:https://serverfault.com/questions/398582