我的 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_cert
和ssl_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 中