ПРЕДУПРЕЖДЕНИЕ: 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 01 июля 2008 г.
Версия 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
работает нормально, без ошибок.
Хорошо, проблема решена ... Я добавил в конфигурацию:
sslVersion = all
options = NO_SSLv2
Насколько я понимаю, ошибка была связана с SSLv23. Теперь все работает как положено.
SSL3_GET_RECORD:wrong version number
это ключ. Похоже, что lynx в ваших системах CentOS не использует SSLv3.
Будет легче проверить точное поведение с помощью openssl s_client
:
Проверьте, что происходит только с SSLv3:
openssl s_client -connect server:443 -ssl3
И только с помощью TLS:
openssl s_client -connect server:443 -tls1
Я должен был установить
options = -NO_SSLv3
деактивировать сейчас дефолт вариант NO_SSLv3. (Сервер, к которому подключается, не выполняет TLS)