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 ...
curl --sslv3 https://ms.icometrix.com
bekerja?Jawaban:
Ini terlihat seperti masalah dengan dukungan ECDH antara klien dan server. Jika Anda mengecualikan semua sandi ECDH, itu berfungsi:
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 openssl
yang memberikan 1.0.1f-1ubuntu2.15 di sistem saya.sumber