ข้อผิดพลาด 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 มกราคม 2558, ใช้ได้ทั้งหมด
  • จาก centos, OpenSSL 1.0.1e-fips 11 ก.พ. 2556, ตกลงทั้งหมด
  • การวางตลาดที่เสถียรล่าสุดบน Ubuntu 14.04, OpenSSL 1.0.2d 9 ก.ค. 2558 โอเคทั้งหมด

จากฝั่งเซิร์ฟเวอร์เราไม่เห็นอะไรแปลก ๆ ปัญหาเริ่มต้นขึ้นเมื่อเราปิดการใช้งาน SSL3 บนเครื่องของเรา

อาจมีปัญหากับการสร้างใน apt-get หรือไม่?

นอกจากนี้เรายังทดสอบเวอร์ชันอื่น ๆ รุ่นที่เสนอโดย apt-cache showpkg แต่ปัญหายังคงอยู่ ...


ดูเหมือนว่าคุณจะได้รับผลกระทบจากปัญหานี้: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 วิธีแก้ปัญหาบางอย่างจะกล่าวถึง ไม่curl --sslv3 https://ms.icometrix.comทำงานหรือไม่
Jos

สวัสดีขอบคุณสำหรับการตอบกลับ ไม่สิ่งนี้ใช้ไม่ได้เพราะเราปิดการใช้งาน ssl บนเซิร์ฟเวอร์ของเรา นอกจากนี้ที่จริงแล้วเราไม่สนใจเกี่ยวกับ curl หรือ openssl ปัญหาที่แท้จริงสำหรับเราคือเราใช้การร้องขอจาก python ซึ่งใช้ openssl รุ่นนี้ ดังนั้นหากคุณมีความคิดใด ๆ ขอบคุณที่แจ้งให้ทราบ ฉันจะขุดต่อไป
cecemel

คำตอบ:


4

ดูเหมือนว่ามีปัญหากับการรองรับ ECDH ระหว่างไคลเอนต์และเซิร์ฟเวอร์ หากคุณแยกรหัสศูนย์ ECDH ทั้งหมดให้ทำงาน:

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

ฉันเดาว่าเซิร์ฟเวอร์ croaks ใน 25 ECC curves บางส่วนที่ลูกค้านำเสนอ เบราว์เซอร์มีเส้นโค้งเพียงไม่กี่เส้นเท่านั้น OpenSSL 0.9.8 ยังไม่รองรับ ECC ใด ๆ และ RedHat / CentOS มีประวัติการปิดใช้งาน ECC โดยค่าเริ่มต้นด้วยเหตุผลด้านสิทธิบัตร ฉันไม่รู้ว่าทำไม OpenSSL 1.0.2 ทำงานได้เนื่องจากฉันไม่สามารถเข้าถึงเวอร์ชันนี้ได้

โปรดทราบว่าการให้รุ่น OpenSSL นั้นไม่เพียงพอเนื่องจากการแจกแจงทั้งหมดจะเก็บรุ่นเก่า แต่เพิ่มแพตช์ความปลอดภัย ตรวจสอบแทนdpkg -l opensslซึ่งให้ 1.0.1f-1ubuntu2.15 ในระบบของฉันแทน


ขอบคุณมันทำเคล็ดลับ! ฉันอัปเดตโพสต์ด้วยเอาต์พุตจาก dpkg -l
cecemel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.