Courier imap-ssl 和多个域名

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 上。

答案1

您可以通过输入来找出 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 可能还不支持(我不确定)。这条信息似乎表明它可能在未来的版本中发生。

相关内容