Stunnel 无法与某些主机的 SSLv3 配合使用

Stunnel 无法与某些主机的 SSLv3 配合使用

警告: SSLv3 已过时。 考虑彻底禁用它

我正在尝试将 Stunnel 设置为 SSL 缓存。一切都很顺利,而且大部分都按设计运行。

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

 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

无法建立 SSL 连接。

这是我的配置:

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

有人知道这里发生了什么吗?我在 Google 上搜索了好几个小时,还是没找到答案。

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工作正常,没有任何错误。

答案1

好的,问题解决了...我将其添加到配置中:

sslVersion = all
options = NO_SSLv2

据我了解,错误与 SSLv23 有关。现在一切都按预期运行。

答案2

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

使用以下命令可以更轻松地检查确切的行为openssl s_client

检查仅使用 SSLv3 会发生什么:

openssl s_client -connect server:443 -ssl3

仅使用 TLS:

openssl s_client -connect server:443 -tls1

答案3

我必须设定

options = -NO_SSLv3

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

相关内容