我试图诊断Mac客户端和Windows服务器之间潜在的SSL/TLS问题。我已经生成了自己的根证书,并为服务器签名了一个证书,并在Mac客户机上安装了根证书。当我试图从mac连接到服务器时,如下所示
echo quit | openssl s_client -connect newmail.example.com:443 -CAfile ~/Downloads/myroot.cer 我看到了这些结果
---
SSL handshake has read 1365 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: DE2800000D2050CAB6CEE9136CD377998559C46C7AD57A1062907EE417457DE0
Session-ID-ctx:
Master-Key: 24E2BE661880D703B7033E0F723323296C26ECEDA0BA79493AE134C7F03EEBD765692C9DF10933BE213FF4E0F89771AC
Key-Arg : None
Start Time: 1458249776
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
DONE这些结果是否意味着协议谈判的最高级别是TLSv1?(我怀疑这是导致我的应用程序问题的原因)?不应该是TLS 1.2吗?
发布于 2016-03-17 21:48:05
协议版本是客户端和服务器之间协商的结果。客户端在ClientHello中发送它支持的最大版本;然后服务器用将要使用的版本进行响应。通常,服务器将选择它支持的最高协议版本,并且不高于客户端公布的最大版本。
在这里,使用openssl命令行工具作为客户端,您可以得到TLS1.0。因此,客户端(此处为OpenSSL)或服务器只知道TLS1.0,而不知道1.2。
OS附带的/usr/bin/openssl工具非常老;在最新的OS安装(El Capitan)上,它是OpenSSL0.9.8zg --这是一个带有bug修复的古老OpenSSL,但不支持OpenSSL-1.*版本中添加的特性。特别是,没有TLS 1.1或1.2。这就解释了,使用OpenSSL,你只能得到1.0。
(OS不会将OpenSSL升级到较新的版本,因为OpenSSL开发人员破坏了API中的向后兼容性,因此更改库版本可能会破坏使用它的第三方现有应用程序。)
为进一步调查你的问题,我建议如下:
openssl客户端。您可以使用MacPorts (例如)合理地轻松安装这样的开源软件。https://security.stackexchange.com/questions/117808
复制相似问题