Ssl

Stunnel 不適用於某些主機的 SSLv3

  • February 7, 2017

警告: 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 日。

隧道版本: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正常,沒有任何錯誤。

好的,問題解決了…我將其添加到配置中:

sslVersion = all
options = NO_SSLv2

據我了解,錯誤與 SSLv23 有關。現在一切都按預期工作。

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

引用自:https://serverfault.com/questions/303090