błąd openssl / curl: SSL23_GET_SERVER_HELLO: błąd wewnętrzny alertu tlsv1


9

Mamy bardzo dziwne problemy z połączeniem się z openssl lub curl z jednym z naszych serwerów, od Ubuntu 14.04

Wykonywanie:

openssl s_client -connect ms.icometrix.com:443

daje:

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

Podobny błąd podczas wykonywania:

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

Dane wyjściowe wersji openssl (na kliencie / serwerze):

OpenSSL 1.0.1f 6 Jan 2014

Dane wyjściowe openssl z dpkg -l openssl:

1.0.1f-1ubuntu2

Zabawne jest to, że problem znika podczas łączenia się z innymi wersjami openssl:

  • Z komputera Mac, OpenSSL 0.9.8zd 8 stycznia 2015 r., Wszystko w porządku
  • Z centos, OpenSSL 1.0.1e-fips 11 lutego 2013, wszystko w porządku
  • Najnowsza stabilna wersja na Ubuntu 14.04, OpenSSL 1.0.2d 9 lipca 2015, wszystko w porządku.

Po stronie serwera nie widzimy nic dziwnego. Problem zaczął się, gdy wyłączyliśmy SSL3 na naszych komputerach.

Czy może występować problem z kompilacją w apt-get?

Testujemy również inne wersje, proponowane przez apt-cache showpkg, ale problem pozostaje ...


Wygląda na to, że zostałeś dotknięty tym błędem: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 . Wymieniono niektóre obejścia. Czy curl --sslv3 https://ms.icometrix.comdziała
Jos

Cześć, dzięki za odpowiedź. Nie, to nie działa, ponieważ wyłączyliśmy ssl na naszych serwerach. Co więcej, tak naprawdę nie dbamy o curl lub openssl, prawdziwy problem dla nas polega na tym, że korzystamy z zapytań Pythona, który korzysta z tej wersji openssl. Jeśli masz jakieś pomysły, dziękuję za informację. Będę kopać dalej.
cecemel,

Odpowiedzi:


4

Wygląda to na problem z obsługą ECDH między klientem a serwerem. Jeśli wykluczysz wszystkie szyfry ECDH, zadziała:

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

Domyślam się, że serwer wykrzykuje niektóre z 25 krzywych ECC oferowanych przez klienta. Przeglądarki oferują tylko kilka krzywych. OpenSSL 0.9.8 nie obsługuje jeszcze żadnych ECC, a RedHat / CentOS ma historię domyślnego wyłączania ECC z powodów patentowych. Nie wiem, dlaczego OpenSSL 1.0.2 działa, ponieważ nie mam dostępu do tej wersji.

Należy pamiętać, że podanie wersji OpenSSL zwykle nie wystarcza, ponieważ wszystkie dystrybucje zachowują starsze wersje, ale dodają łaty bezpieczeństwa. Zamiast tego sprawdź, dpkg -l opensslco daje 1.0.1f-1ubuntu2.15 w moim systemie.


dzięki, udało się! Zaktualizowałem post o dane wyjściowe z dpkg -l
cecemel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.