AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 811229
Accepted
Peregring-lk
Peregring-lk
Asked: 2016-10-26 09:03:49 +0800 CST2016-10-26 09:03:49 +0800 CST 2016-10-26 09:03:49 +0800 CST

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

  • 772

正如 StartSSL 所说,我为我的 postfix/dovecot Ubuntu 14.04 服务器创建了一个 CST 和私钥对,其中:

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,我收到:

// 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 知道密码,删除密码,还是必须重新更新证书?

我更喜欢第一个问题的解决方案(让他们知道密码),因为这对我来说是一个新情况,所以我学到了一些东西(也许我需要将该密钥的密码“注册”到系统的某个密码池? )

postfix dovecot ssl-certificate password-management
  • 2 2 个回答
  • 4225 Views

2 个回答

  • Voted
  1. Best Answer
    Jens Erat
    2016-10-26T09:27:21+08:002016-10-26T09:27:21+08:00

    配置 Dovecot

    您可以将 Dovecot 配置为在启动时使用密码解锁密钥。SSL 配置 Wiki 页面有一个部分:

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

    1. 启动 Dovecotdovecot -p会询问密码。它没有存储在任何地方,因此这种方法可以防止 Dovecot 在启动时自动启动。

    2. ssl_key_password环境。请注意,dovecot.conf默认情况下它是世界可读的,因此您可能不应该直接将它放在那里。相反,您可以将其存储在不同的文件中,例如 /etc/dovecot-private.conf包含:

      ssl_key_password = secret

      然后!include_try /etc/dovecot-private.conf在 main 中使用dovecot.conf。

    Postfix 需要一个未加密的密钥

    Postfix 无法处理加密密钥,因此您必须提供解密后的副本:

    为了使用 TLS,Postfix SMTP 服务器通常需要证书和私钥。两者都必须是“PEM”格式。私钥不得加密,这意味着:密钥必须无需密码即可访问。[...]

    删除密码

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

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

    再次导出密钥时无需输入新密码。

    • 2
  2. Tim Chaubet
    2019-01-11T04:43:17+08:002019-01-11T04:43:17+08:00

    您还可以使用 openssl 立即创建未加密的密钥。要获取密钥、csr 和 crt 文件,命令将是

    openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key
    openssl req -new -key server.key -out server.csr
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    • 0

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve