помилка openssl / curl: SSL23_GET_SERVER_HELLO: внутрішня помилка попередження tlsv1


9

У нас виникають дуже дивні проблеми, пов’язані з openssl або curl до одного з наших серверів, від Ubuntu 14.04

Виконання:

openssl s_client -connect ms.icometrix.com:443

дає:

CONNECTED(00000003)
140557262718624:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error:s23_clnt.c:770:

Аналогічна помилка під час виконання:

curl https://ms.icometrix.com
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error

Вихід версії openssl (на клієнті / сервері):

OpenSSL 1.0.1f 6 Jan 2014

Виведення openssl з dpkg -l openssl:

1.0.1f-1ubuntu2

Найцікавіше, що проблема зникає під час з'єднання з іншими версіями Openssl:

  • Від mac, OpenSSL 0.9.8zd 8 січня 2015, все гаразд
  • Від centos, OpenSSL 1.0.1e-fips 11 лютого 2013 року, все гаразд
  • Останній стабільний випуск на Ubuntu 14.04, OpenSSL 1.0.2d 9 липня 2015, все гаразд.

З боку сервера ми нічого дивного не бачимо. Проблема почалася, коли ми відключили SSL3 на своїх машинах.

Можливо, може виникнути проблема зі складанням в apt-get?

Ми також тестуємо інші версії, запропоновану apt-cache showpkg, але проблема залишається ...


Схоже, вас потрапила ця помилка: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 . Згадуються деякі обхідні шляхи. Чи curl --sslv3 https://ms.icometrix.comпрацює?
Джос

Привіт, дякую за відповідь. Ні, це не працює, оскільки ми відключили ssl на своїх серверах. Крім того, насправді нас не хвилює curl або openssl, справжня проблема для нас полягає в тому, що ми використовуємо запити від python, який використовує цю версію openssl. Тож якщо у вас виникли якісь ідеї, дякую, що повідомили про це. Я буду копати далі.
цекемель

Відповіді:


4

Це виглядає як проблема із підтримкою ECDH між клієнтом та сервером. Якщо ви виключаєте всі шифри ECDH, він працює:

openssl s_client -connect ms.icometrix.com:443 -cipher 'DEFAULT:!ECDH'

Я здогадуюсь, що сервер обшиває деякі 25 кривих ECC, запропонованих клієнтом. Браузери пропонують лише кілька кривих. OpenSSL 0.9.8 ще не підтримує жоден ECC, і RedHat / CentOS має історію відключення ECC за замовчуванням з патентних причин. Я не знаю, чому OpenSSL 1.0.2 працює, оскільки я не маю доступу до цієї версії.

Зауважте, що надання версії OpenSSL зазвичай недостатньо, оскільки всі дистрибутиви зберігають старіші версії, але додають патчі безпеки. Замість цього перевірте, dpkg -l opensslщо дає 1.0.1f-1ubuntu2.15 у моїй системі.


THX це зробив трюк! Я оновив пост з виходом з dpkg -l
cecemel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.