email - PHP imap_open()、OpenSSL 和无密码

标签 email ubuntu ssl tls1.2 dovecot

我已将 PHP 脚本移至另一台服务器,但现在无法登录 IMAP (TLS) 邮箱:

TLS/SSL failure for mail.servername.de: SSL negotiation failed 

似乎问题是由 OpenSSL 引起的,因为当我尝试从两台服务器连接到邮件服务器时,在一种情况下我得到了一个连接(邮件服务器要求输入),但在另一种情况下没有(连接已关闭,我我回到bash):
 openssl s_client -crlf -connect mail.servername.de:993

最明显的区别在这里:
verify return:1
---

<snip>

-----END CERTIFICATE-----
subject=/CN=mail.servername.de
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: DH, 1024 bits
---
SSL handshake has read 3398 bytes and written 483 bytes
Verification: OK
---
New, TLSv1.2, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit

在其他服务器上(没有建立连接)
verify return:1
depth=0 CN = mail.servername.de
verify return:1
140410888582464:error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small:../ssl/statem/statem_clnt.c:2149:
---

<snip>

-----END CERTIFICATE-----
subject=CN = mail.servername.de

issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

---
No client certificate CA names sent
---
SSL handshake has read 3167 bytes and written 318 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Server public key is 2048 bit

在邮件服务器上 dovecot配置为不接受非加密连接。但是,我认为它已经因为 dh key too small 而失败了。 ,这似乎与密码协商有关。

现在我根本无法将这些东西放在一起......为什么 SSL 连接可以从一台服务器工作,而不能从另一台服务器工作?

最佳答案

由于我自己拥有“远程终端”,因此我能够提高安全性。解决方案很简单,也可能与其他人相关......
dovecot版本是 2.2.x,这与 DH 参数有一定的相关性(参见 Dovecot SSL configuration)。在配置文件/etc/dovecot/conf.d/10-ssl.conf你可以简单地添加这一行:

ssl_dh_parameters_length = 2048

最后,可能需要在此处将其添加到主配置文件 /etc/dovecot/dovecot.conf在最后:
!include conf.d/*.conf

最后,重要的是不要重新加载,而是重新启动 dovecot。
systemctl restart dovecot

突然之间,几个小时的沉重、烦恼和挫败感都消失了。伟大的...

关于email - PHP imap_open()、OpenSSL 和无密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62109534/

相关文章:

ssl - 使用 JavaMail 连接到服务器时,支持的 SSL 版本是什么?

validation - grails 验证电子邮件自定义消息

node.js - Upstart 重生健康过程

ubuntu - 用 1.50 替换默认的旧 boost 1.46

actionscript-3 - AS3 本地连接与 SSL

apache - 使用 IBM HTTP 服务器防止浏览器 URL 在 SSL 配置中的页面重定向期间更改

javascript - 为什么 "mailto:"被认为是一种非垃圾邮件友好的电子邮件发送方式?

php - 使用 Mandrill API 发送邮件时被拒绝

ruby-on-rails - Gmail 的操作邮件程序配置

python-3.x - 使用 pyinstaller 打包