s_client 与服务器的连接失败,出现 ssl 错误代码 47

s_client 与服务器的连接失败,出现 ssl 错误代码 47

最近升级到 openssl-1.1.0c 后,我无法再连接到工作中的 IMAP 服务器。使用完全相同的命令,连接到其他 IMAP 服务器(例如 imap.gmx.de:993)没有任何问题。

尝试使用以下方式连接服务器时

openssl s_client -connect mbox.uni-stuttgart.de:993

我收到以下错误:

CONNECTED(00000003)
140093138867328:error:14094417:SSL routines:ssl3_read_bytes:sslv3 alert illegal parameter:ssl/record/rec_layer_s3.c:1388:SSL alert number 47

该服务器正在运行 CommuniGate Pro Suite。

以下是我迄今为止测试过的内容:

  • 使用 OpenSSL 1.0.1t 从另一台机器连接运行顺畅。
  • 连接到同一目标机器上提供 SSLv3 的其他安全服务(与电子邮件无关:Apache 服务器)运行顺畅。

如果您能提供任何有关为什么与电子邮件相关的服务的连接会导致上述错误的信息,我们将不胜感激!

答案1

服务器仅支持 DES-CBC3-SHA、RC4-SHA 和 RC4-MD5 作为密码。这些密码不再被视为安全,因此它们不包含在 OpenSSL 1.1.0 中的默认密码集中。从变更日志1.1.0 的版本:

... 为了减轻 SWEET32 攻击 (CVE-2016-2183),3DES 密码套件已默认禁用并从默认中删除
... 基于 RC4 的 libssl 密码套件现在被归类为“弱”密码并默认被禁用。

您仍然应该能够通过明确允许此密码连接到服务器,即

 openssl s_client -cipher 'RC4-SHA' ...

答案2

openssl s_client -cipher ALL -connect …只要远程系统上可用的任何密码都受支持,就可以帮助您。

通用格式与其他软件中许多类似选项使用的格式相同:cipher_spec[:cipher_spec]...,fe classic ALL:!aNULL:!EXPORT:!LOW:!RC4:+TLSv1.0,意思是“全部,但排除匿名密码、排除具有出口限制的密码、排除在库编译时被认为是低安全性的密码、排除基于 RC4 的密码并将 TLSv1.0 支持移至可协商协议(密码)列表的末尾”。

https://www.openssl.org/docs/man1.1.1/man1/ciphers.html

相关内容