我有 2 台计算机 - 让我们将其命名为 A 和 B。两者都安装了相同的 OpenSSL 版本。都是 Debian 8.3。
OpenSSL 1.0.1k 8 Jan 2015
我尝试通过 SSL 从两者连接到邮件服务器。
openssl s_client -host pop.amailserver.net -port 995
从 A 我需要指定 ssl 版本(参数 -tls1 或 -tls1_1)以使其工作。
如果不是,我会得到一个错误。
SSL routines:SSL3_GET_SERVER_HELLO:wrong ssl version:s3_clnt.c:851
...
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.1
Cipher : 0000
但是从 B 开始,它无需任何参数即可开箱即用。
Protocol : TLSv1
Cipher : AES128-SHA
问题是某些库似乎使用此设置并且无法从 A 连接(从 B 工作)。所以我认为原因相同 - 我无法将一些 SSL 参数传递给库。
有谁知道此行为是否在某处配置或设置?
最佳答案
没有影响系统上所有基于 OpenSSL 的应用程序的密码或协议(protocol)的全局设置。我的猜测是不同之处在于网络,例如
- 某处有一个 SSL 拦截中间件(防火墙或类似的)
- 目标不同,即A和B使用不同的IP地址连接到服务器。这可能是因为服务器可通过 IPv4 和 IPv6 访问,但一个系统具有 IPv6 连接而另一个没有。但也有可能使用不同 IP 地址的其他原因。
关于ssl - OpenSSL 命令行工具版本和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608793/