web-dev-qa-db-ja.com

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

誰がここで何が起こっているのかについて何か洞察がありますか?数時間グーグル化して、それを理解することはできません。

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と同じですが、エラーなしで問題なく動作します。

9
Sergey

さて、問題は解決しました...私はこれを構成に追加しました:

sslVersion = all
options = NO_SSLv2

私が理解している限り、エラーはSSLv23に関連していました。これですべてが期待どおりに動作します。

10
Sergey

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
6
Shane Madden

設定しなければならなかった

options = -NO_SSLv3

nO_SSLv3のnow defaultオプションを無効にします。 (に接続するサーバーはTLSを実行しません)

0
Jonathan Nicol