kesalahan openssl / curl: SSL23_GET_SERVER_HELLO: kesalahan internal peringatan tlsv1

9

Kami menemui masalah yang sangat aneh saat terhubung dengan openssl atau curl ke salah satu server kami, dari Ubuntu 14.04

Mengeksekusi:

openssl s_client -connect ms.icometrix.com:443

memberi:

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

Kesalahan serupa saat mengeksekusi:

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

Output dari versi openssl (pada klien / server):

OpenSSL 1.0.1f 6 Jan 2014

Output dari openssl dari dpkg -l openssl:

1.0.1f-1ubuntu2

Lucunya, masalahnya hilang ketika terhubung dengan versi lain dari openssl:

  • Dari mac, OpenSSL 0.9.8zd 8 Jan 2015, semua ok
  • Dari centos, OpenSSL 1.0.1e-fips 11 Feb 2013, semuanya ok
  • Rilis stabil terbaru di Ubuntu 14.04, OpenSSL 1.0.2d 9 Jul 2015, semua ok.

Dari sisi server, kami tidak melihat sesuatu yang aneh. Masalahnya dimulai ketika kami menonaktifkan SSL3 di mesin kami.

Mungkinkah ada masalah dengan build di apt-get?

Kami juga menguji versi lain, yang diusulkan oleh showpkg apt-cache, tetapi masalahnya tetap ...

cecemel
sumber
Sepertinya Anda telah terkena bug ini: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 . Beberapa solusi disebutkan. Apakah curl --sslv3 https://ms.icometrix.combekerja?
Jos
Hai, terima kasih atas jawabannya. Tidak ini tidak berfungsi, karena kami menonaktifkan ssl di server kami. Lebih jauh lagi, sebenarnya, kami tidak peduli tentang curl atau openssl, masalah sebenarnya bagi kami adalah bahwa kami menggunakan permintaan dari python, yang menggunakan versi openssl ini. Jadi, jika Anda punya ide, terima kasih sudah memberi tahu. Saya akan menggali lebih jauh.
cecemel

Jawaban:

4

Ini terlihat seperti masalah dengan dukungan ECDH antara klien dan server. Jika Anda mengecualikan semua sandi ECDH, itu berfungsi:

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

Dugaan saya adalah bahwa server kuak pada beberapa dari 25 kurva ECC yang ditawarkan oleh klien. Browser hanya menawarkan beberapa kurva. OpenSSL 0.9.8 belum mendukung ECC dan RedHat / CentOS memiliki riwayat menonaktifkan ECC secara default untuk alasan paten. Saya tidak tahu mengapa OpenSSL 1.0.2 berfungsi karena saya tidak memiliki akses ke versi ini.

Harap dicatat bahwa memberikan versi OpenSSL biasanya tidak cukup karena semua distribusi mempertahankan versi yang lebih lama tetapi menambahkan tambalan keamanan. Alih-alih memeriksa dengan dpkg -l opensslyang memberikan 1.0.1f-1ubuntu2.15 di sistem saya.

Steffen Ullrich
sumber
Terima kasih! Saya memperbarui pos dengan output dari dpkg -l
cecemel