StartSSL 证书不适用于 Dovecot/OpenSMTPD

StartSSL 证书不适用于 Dovecot/OpenSMTPD

我的 StartSSL 证书有问题。当我尝试使用它在 Dovecot 上激活 SSL 加密时,当客户端尝试连接到 imap 服务器时,我的日志中出现以下错误:

dovecot: imap-login: Fatal: Couldn't parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY
dovecot: master: Error: service(imap-login): command startup failed, throttling for 16 secs

不过,我已经遵循了本教程:SSL 如何:在 Dovecot IMAP 服务器上安装 SSL | ErlyCoder并且我的私钥(没有密码)和证书都存在于它们应该在的地方,所以我不明白为什么它不起作用

在我的 dovecot.conf 文件中:

ssl_key =   /home/mail/ssl/****.key
ssl_cert =  /home/mail/ssl/****.pem

证书文件按此顺序包含:

  • 我的证书
  • 来自 StartSSL 的 sub.class1.server.ca.pem 内容
  • StartSSL 中的 ca.pem 内容

操作系统:Debian 8

谢谢

答案1

根据您提供的文件,尝试仅将私钥和证书放入.pem并将其用于文件ssl_certssl_key

以下是我自己的系统:

[root@j /usr/local/etc/dovecot/conf.d]# grep ^ssl_ 10-ssl.conf 
ssl_cert = </usr/local/etc/dovecot/alexus.biz.pem
ssl_key = </usr/local/etc/dovecot/alexus.biz.pem
[root@j /usr/local/etc/dovecot/conf.d]# grep ^- /usr/local/etc/dovecot/alexus.biz.pem 
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
[root@j /usr/local/etc/dovecot/conf.d]# 

答案2

我终于找到了如何使我的 StartSSL 证书与 Dovecot 和 OpenSMTPD (5.4.2p1) 一起使用的方法:

对于 Dovecot,您需要将密钥和证书连接成一个 pem 文件 - 感谢@Alexus - 并将以下几行添加到您的 dovecot 配置文件中:

# blablabla
ssl = required
ssl_key =   </home/mail/ssl/dovecot.pem # Key
ssl_cert =  </home/mail/ssl/dovecot.pem # Certificate
ssl_ca =    </home/mail/ssl/ca-bundle.pem # Server Certificate Bundle with CRLs
# blablabla

http://wiki.dovecot.org/SSL/DovecotConfiguration了解更多信息。ca-bundle.pem来自 StartSSL

对于 OpenSMTPD,我花了很长时间才明白它是如何完美运行的:

我使用 Thunderbird 测试与 Dovecot 和 OpenSMTPD 的连接,但是一个“错误”影响了 Thunderbird,并使我认为 OpenSMTPD 配置错误:

https://github.com/OpenSMTPD/OpenSMTPD/issues/451

要将 Thunderbird 与 OpenSMTPD 一起使用,您必须选择 STARTTLS 来对您的 smtp 服务器进行身份验证,否则您在尝试连接时会遇到此错误:

Aug 26 22:06:47 asterix smtpd[5866]: smtp-in: New session 8b475ba3c3415a4d from host 37-161-XX-XX.coucou-networks.fr [37.161.XX.XX]
Aug 26 22:06:47 asterix smtpd[5866]: smtp-in: Bad input on session 8b475ba3c3415a4d: 500 5.5.1 Invalid command: Pipelining not supported
Aug 26 22:06:47 asterix smtpd[5866]: smtp-in: Closing session 8b475ba3c3415a4d

我的 smtpd.conf:

pki <hostname> key         "/home/mail/ssl/opensmtpd.key"
pki <hostname> certificate "/home/mail/ssl/opensmtpd.crt"
pki <hostname> ca          "/home/mail/ssl/ca-bundle.pem"

listen on eth0 port 25 hostname <hostname> tls pki <hostname>
listen on eth0 port 587 hostname <hostname> tls-require pki <hostname> auth mask-source

PS:密钥和证书位于 OpenSMTPD 的不同文件中,而不是像 Dovecot 那样位于 .pem 中

相关内容