我已经为我的postfix / dovecot Ubuntu 14.04服务器创build了一个CST和私钥对,就像StartSSL所说的那样:
openssl req -newkey rsa:2048 -keyout mydomain.key -out mydomain.csr
在密码提示符处,我介绍了(为什么不,对吧?)密码,而不是留下密码空白,以有一个非保护的密钥。
将csr
文件粘贴到StartSSL后,我收到了与密码保护文件相关的相应证书。
我已经使用该证书Dovecot和Postfix:
// /etc/postfix/main.cf smtpd_tls_cert_file = /etc/ssl/private/mychain.pem smtpd_tls_key_file = /etc/ssl/private/mydomain.key smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt // /etc/dovecot/conf.d/10-ssl.conf ssl_cert = </etc/ssl/private/mychain.pem ssl_key = </etc/ssl/private/mydomain.key
在使用checktls.com
进行testing时,我收到:
// other steps omited 749.-->STARTTLS\r\n 750.<--454 4.7.0 TLS not available due to local problem\r\n
在我的系统日志中,出现了SMTP错误,还有一个dovecot
错误,幸运的是,恰好在那一刻(我的一些客户试图连接那一刻,我猜):
Oct 25 18:49:12 ns dovecot: pop3-login: Error: SSL private key file is password protected, but password isn't given Oct 25 18:49:12 ns dovecot: pop3-login: Fatal: Couldn't parse private ssl_key: error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read Oct 25 18:49:12 ns dovecot: master: Error: service(pop3-login): command startup failed, throttling for 60 secs Oct 25 18:49:16 ns postfix/smtpd[30437]: connect from www4.checktls.com[216.68.85.112] Oct 25 18:49:17 ns postfix/smtpd[30437]: lost connection after UNKNOWN from www4.checktls.com[216.68.85.112] Oct 25 18:49:17 ns postfix/cleanup[30461]: 93088330D956: message-id=<[email protected]> Oct 25 18:49:17 ns postfix/smtpd[30437]: disconnect from www4.checktls.com[216.68.85.112]
那么,我该如何让Postfix和Dovecot知道密码,删除密码,还是必须重新更新证书呢?
我更喜欢第一个问题的解决scheme(让他们知道密码),因为它对我来说是一个新的情况,所以我学到了一些东西(也许我需要将该密钥的密码“注册”到系统的某个密码池? )
您可以configurationDovecot以在启动时使用密码解锁密钥。 SSLconfigurationWiki页面有一个部分 :
SSL密钥文件可能受密码保护。 有两种方法可以提供Dovecot的密码:
用
dovecot -p
开始dovecot -p
询问密码。 它不存储在任何地方,所以这种方法可以防止Dovecot在启动时自动启动。
ssl_key_password
设置。 请注意,dovecot.conf
默认是世界可读的,所以你可能不应该直接放在那里。 相反,您可以将其存储在不同的文件中,例如/etc/dovecot-private.conf
其中包含:
ssl_key_password = secret
然后在主
dovecot.conf
使用!include_try /etc/dovecot-private.conf
dovecot.conf
。
Postfix不能处理encryption的密钥 ,所以你必须提供一个解密的副本:
为了使用TLS,Postfix SMTP服务器通常需要一个证书和一个私钥。 两者都必须是“PEM”格式。 私钥不能被encryption,这意味着:密钥必须无需密码才能访问。 […]
删除密码也很容易通过运行来实现
openssl rsa -in encrypted-key.pem -out decrypted-key.pem
而当再次输出密钥时不需要input新的密码。