Postfix / Dovecot和新的密码保护私钥

我已经为我的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(让他们知道密码),因为它对我来说是一个新的情况,所以我学到了一些东西(也许我需要将该密钥的密码“注册”到系统的某个密码池? )

configuration鸽子

您可以configurationDovecot以在启动时使用密码解锁密钥。 SSLconfigurationWiki页面有一个部分 :

SSL密钥文件可能受密码保护。 有两种方法可以提供Dovecot的密码:

  1. dovecot -p开始dovecot -p询问密码。 它不存储在任何地方,所以这种方法可以防止Dovecot在启动时自动启动。

  2. 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的密钥

Postfix不能处理encryption的密钥 ,所以你必须提供一个解密的副本:

为了使用TLS,Postfix SMTP服务器通常需要一个证书和一个私钥。 两者都必须是“PEM”格式。 私钥不能被encryption,这意味着:密钥必须无需密码才能访问。 […]

删除密码

删除密码也很容易通过运行来实现

 openssl rsa -in encrypted-key.pem -out decrypted-key.pem 

而当再次输出密钥时不需要input新的密码。