Stunnel nie będzie działał z SSLv3 od niektórych hostów

9

OSTRZEŻENIE: SSLv3 jest przestarzały . Rozważ wyłączenie go całkowicie .

Próbuję skonfigurować Stunnel do serwera jako pamięć podręczną SSL. Wszystko było gładkie i przeważnie działa zgodnie z planem.

Potem napotkałem błędy w plikach dziennika:

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

Nie wszyscy klienci powodują to z jakiegoś dziwnego powodu. Łączenie z CentOS za pomocą łączy - pojawia się błąd (wypróbowano wiele komputerów). Łączenie z Ubuntu za pomocą łączy - bez błędów.

Próbowałem za pomocą wget i wszystko działa płynnie z TLSv1, ale błąd pojawia się z SSLv3. Jednocześnie raporty wget:

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

Nie można nawiązać połączenia SSL.

Oto moja konfiguracja:

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

Czy ktoś ma wgląd w to, co się tutaj dzieje? Google od wielu godzin, nie mogę tego rozgryźć.

Wersja OpenSSL: OpenSSL 0.9.8e-fips-rhel5 01 lipca 2008.

Wersja Stunnel: 4.32

EDYTOWAĆ:

Oto wynik działania 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:

To samo z -tls1działa OK, bez żadnych błędów.

Siergiej
źródło

Odpowiedzi:

10

Ok problem został rozwiązany ... Dodałem to do konfiguracji:

sslVersion = all
options = NO_SSLv2

O ile mi wiadomo, błąd był związany z SSLv23. Teraz wszystko działa zgodnie z oczekiwaniami.

Siergiej
źródło
Musiałem także dodaćfips = no
Steve Tauber,
Możesz także dodać, option = NO_SSLv3aby wymusić wybranie jednego z wariantów TLS.
Tedford,
6

SSL3_GET_RECORD:wrong version numberjest kluczem. Wygląda na to, że ryś w twoich systemach CentOS nie używa SSLv3.

Dokładniejsze zachowanie będzie łatwiejsze dzięki openssl s_client:

Sprawdź, co się stanie z samym SSLv3:

openssl s_client -connect server:443 -ssl3

I tylko z TLS:

openssl s_client -connect server:443 -tls1
Shane Madden
źródło
Edytowałem post, aby podać więcej szczegółów
Sergey
Spróbuj dodać -no_ticketdo próby SSLv3. Wygląda na ten błąd OpenSSL .
Shane Madden,
Hmm, pokazuje nieznaną opcję
Siergiej
@ Serge To ... dziwne. Co otrzymasz od openssl version?
Shane Madden,
0

Musiałem ustawić

options = -NO_SSLv3

aby dezaktywować domyślną opcję NO_SSLv3. (Serwer łączący się nie obsługuje TLS)

Jonathan Nicol
źródło