如何在Xeams邮件服务器上设置Letsencrypt ssl?

首先,我能够成功地为我的域名在Ubuntu 14.0.4服务器上设置一个letsencrypt证书,通过validation我可以通过https访问我的域名,并确认我确实拥有正确的文件,我确认了一切正常。

/etc/letsencrypt/live/domain.tld/

我在服务器上运行了一个Xeams邮件服务器,我一直在按照指南中的步骤find它。 首先,我必须使用以下命令将由LetsEncrypt生成的证书文件从.pem.crt

openssl x509 -outform der -in my-cert.pem -out my-cert.crt

哪些工作正常,并成功地转换文件,但我有指导的问题是,它假定我还没有一个ssl证书,情况并非如此。 当我已经拥有Letsencrypt的证书时,我认为我不应该再次生成CSR代码。

要清楚的是,这些是我的域名所拥有的证书文件。

  1. cert.pem
  2. chain.pem
  3. privkey.pem
  4. fullchain.pem

但在指南中,它要求我生成CSR代码,而不是,我已经跳过了生成一个CSR的部分,我必须将证书添加到密钥库,但它不是很直截了当,我应该做的,导致文件在指南中与我从Letsencrypt获得的内容不相关。

当我尝试遵循指南的其余部分,并testing我的服务器接受安全IMAP端口995上的连接时,我的服务器返回一个自签名证书,而不是来自CA的证书。

我用openssl来testing安全的IMAP端口995

openssl s_client -connect localhost:995

我也证实了Letsencrypt支持SSL电子邮件协议和Java,所以必须有一些我没有得到正确的。 我一直无法弄清楚如何将我的证书添加到密钥库。

所以我终于在经过几天的search之后find了答案,感谢这里的指南,甚至不需要使用keytool,因为xeams支持PKCS12证书。

  1. 创build一个包含您的fullchain.pemprivkey.pemPKCS12

    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out synametrics.cert -name xeams

  2. 将您的synametrics.cert复制到xeams的安装目录中:

    cp synametrics.cert /etc/Xeams/config/

  3. ./config文件夹中创build一个server.properties文件,如果它不存在并将下面的参数追加到文件中:

    javax.net.ssl.keyStore=config/synametrics.cert javax.net.ssl.keyStorePassword=password SSLCertificatePassword=password

    其中, pasword是您在使用openssl创build密钥库时input的密码。

  4. 在Xeamspipe理面板> SMTPconfiguration>configurationSSL中selectPKCS12密钥库types:

    密钥库参数

  5. 启用安全SMTP服务器并在xeams中指定其端口。 validation您可以连接到指定端口上的邮件服务器:

    openssl s_client -connect mail.example.com:465


为弱密钥修复

  1. 你可能会从openssl得到关于xeams使用的DHKey太小的错误,这是一个xeams问题,不是openssl或者letsencrypt。

    这个问题是由xeams使用一个非常弱的短暂Diffie-Hellman公钥 ,小于1024位,理想情况下,不应该小于2048位。 我尝试了很多东西,但这是为我修复的:

    使用synammetrics的本文中的内容更新/etc/xeams/jre中的/etc/xeams/jre

    一个。 停止xeams smtp服务:

    service xeams stop

    湾 重命名您的xeams安装目录中的jre文件夹:

    mv -T jre jre.old

    C。 从上面的文章的链接抓取机器体系结构的压缩jre,并将其解压到/etc/xeams/jre/目录,新的jre文件夹应该包含压缩的jre的内容。

    d。 启动xeams!

    service xeams start

我希望这可以解决这个问题。 🙂