Stunnel不能使用某些主机的SSLv3

警告: SSLv3已过时 。 考虑完全禁用它 。

我正在尝试将Stunnel设置为服务器作为SSLcaching。 一切都很顺利,而且大部分都按devise工作。

然后我在日志文件中遇到错误:

SSL_accept: 1408F10B: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 

并不是所有的客户都会触发这个事情 使用链接从CentOS连接 – 错误显示(尝试多台机器)。 使用链接从Ubuntu连接 – 没有错误。

尝试使用wget,并与TLSv1一切顺利,但错误显示与SSLv3。 同时,wget报道:

 OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure 

无法build立SSL连接。

这是我的configuration:

 pid = /etc/stunnel/stunnel.pid debug = 3 output = /etc/stunnel/stunnel.log socket=l:TCP_NODELAY=1 socket=r:TCP_NODELAY=1 verify=3 ; fixing "fingerprint does not match" error fips=no [https] accept=12.34.56.78:443 connect=127.0.0.1:80 TIMEOUTclose=0 xforwardedfor=yes CAfile = /path/to/ssl/example.com.cabundle cert=/path/to/ssl/example.com.crt key=/path/to/ssl/example.com.key 

任何人都有什么洞察到这里发生了什么? 现在Googlesearch了好几个小时,想不出来。

OpenSSL版本:OpenSSL 0.9.8e-fips-rhel5 2008年7月1日

Stunnel版本:4.32

编辑:

这里是openssl s_client -connect example.com:443 -ssl3的输出

 CONNECTED(00000004) 3897:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40 3897:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530: 

-tls1工作正常,没有任何错误。

好的,问题解决了…我将其添加到configuration中:

 sslVersion = all options = NO_SSLv2 

据我所知,错误与SSLv23有关。 现在都按预期工作。

SSL3_GET_RECORD:wrong version number是关键。 看来你的CentOS系统上的Lynn没有使用SSLv3。

openssl s_client检查确切的行为会更容易:

检查只有SSLv3会发生什么情况:

 openssl s_client -connect server:443 -ssl3 

而只有TLS:

 openssl s_client -connect server:443 -tls1 

我必须设置

 options = -NO_SSLv3 

停用NO_SSLv3的现在默认选项。 (服务器连接不做TLS)