Stunnel ne fonctionnera pas avec SSLv3 de certains hôtes

9

AVERTISSEMENT: SSLv3 est obsolète . Pensez à le désactiver complètement .

J'essaie de configurer Stunnel sur le serveur en tant que cache SSL. Tout était lisse, et surtout cela fonctionne comme prévu.

Ensuite, j'ai rencontré des erreurs dans les fichiers journaux:

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

Tous les clients ne déclenchent pas cela, pour une raison étrange. Connexion à partir de CentOS à l'aide de liens - une erreur apparaît (plusieurs machines essayées). Connexion depuis Ubuntu à l'aide de liens - aucune erreur.

Testé en utilisant wget, et tout est fluide avec TLSv1, mais l'erreur apparaît avec SSLv3. Dans le même temps, wget rapporte:

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

Impossible d'établir une connexion SSL.

Voici ma config:

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

Quelqu'un a une idée de ce qui se passe ici? Googlé pendant plusieurs heures maintenant, je ne peux pas le comprendre.

Version OpenSSL: OpenSSL 0.9.8e-fips-rhel5 01 juil.2008.

Version Stunnel: 4,32

ÉDITER:

Voici une sortie de 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:

Même chose avec les -tls1travaux OK, sans aucune erreur.

Sergey
la source

Réponses:

10

Ok, le problème a été résolu ... J'ai ajouté ceci à la configuration:

sslVersion = all
options = NO_SSLv2

Pour autant que je comprends, l'erreur était liée à SSLv23. Maintenant, tout fonctionne comme prévu.

Sergey
la source
J'ai également dû ajouterfips = no
Steve Tauber
Vous pouvez également ajouter option = NO_SSLv3pour forcer la sélection d'une des variantes TLS.
Tedford
6

SSL3_GET_RECORD:wrong version numberC'est la clé. Il semble que lynx sur vos systèmes CentOS n'utilise pas SSLv3.

Il sera plus facile de vérifier le comportement exact avec openssl s_client:

Vérifiez ce qui se passe avec SSLv3 uniquement:

openssl s_client -connect server:443 -ssl3

Et avec seulement TLS:

openssl s_client -connect server:443 -tls1
Shane Madden
la source
Modifié le message pour fournir plus de détails
Sergey
Essayez d'ajouter -no_ticketà la tentative SSLv3. Ressemble à ce bogue OpenSSL .
Shane Madden
Hmm, montre une option inconnue
Sergey
@Serge C'est .. étrange. D'où tirez-vous openssl version?
Shane Madden
0

Je devais régler

options = -NO_SSLv3

pour désactiver l' option désormais par défaut NO_SSLv3. (Le serveur qui se connecte à ne fait pas TLS)

Jonathan Nicol
la source