TLS curl POST ทำให้เกิดข้อผิดพลาด SSLv3


0

ฉันกำลังพยายามขอ POST ผ่านทาง curl ไปยังเซิร์ฟเวอร์ที่รองรับ TLS 1.2, TLS 1.1 และ TLS 1.0 เท่านั้น อย่างไรก็ตามแม้เมื่อฉันพยายามระบุความต้องการ TLS แทนที่จะเป็นค่าเริ่มต้น SSL v. 3 (เพิ่ม --- tlsv1) ฉันได้รับการตอบสนองต่อไปนี้:

curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

นี่คือเวอร์ชั่นของ curl ที่ฉันใช้:

curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

ไม่มีปัญหาไฟร์วอลล์ในการแก้ไข URL

ฉันจะทำให้ POST ประสบความสำเร็จได้อย่างไร

อัปเดต: ฉันได้ลองทำคำขอกับ Python เพื่อลองคิดดูว่าปัญหาคืออะไร URL เป็นแบบภายในดังนั้นฉันจึงไม่สามารถแบ่งปันสิ่งนั้นได้ แต่ความช่วยเหลือจะได้รับการชื่นชมว่าเป็นปัญหาการกำหนดค่าอย่างไร นี่คือข้อผิดพลาด Python:

urllib2.URLError: <urlopen error (1, 'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure')>


URL ของเซิร์ฟเวอร์ที่คุณพยายามเชื่อมต่อคืออะไร? หากคุณไม่ได้ระบุไว้เราจะไม่สามารถช่วยคุณแก้ปัญหาได้ เราอาจต้องปิดคำถามเพราะ "ไม่สามารถทำซ้ำ"
jww

คำตอบ:


1

ฉันจะทำให้ POST ประสบความสำเร็จได้อย่างไร

ยากที่จะบอกว่าปัญหาคืออะไรโดยไม่รู้ URL ที่แน่นอน แต่เนื่องจากเวอร์ชันของ curl ที่คุณใช้อาจเป็นไปได้ว่าเซิร์ฟเวอร์ต้องการServer Name Indication (SNI)ซึ่งไม่รองรับเวอร์ชันเก่าของ curl ที่คุณใช้


ฉันได้รับข้อผิดพลาดเดียวกันเมื่อทำการร้องขอกับ Python ie, urllib2.URLError: <ข้อผิดพลาด urlopen (1, 'ข้อผิดพลาด: 14077410: กิจวัตร SSL: SSL23_GET_SERVER_HELLO: ความล้มเหลวในการจับมือการแจ้งเตือน sslv3')>
Jake

@JakeWasdin: การเปลี่ยนแปลงมีค่าสูงซึ่งไพ ธ อนของคุณเก่าเกินไป SNI รองรับตั้งแต่ Python 2.7.9 เท่านั้น
Steffen Ullrich

0

ข้อผิดพลาด "การจับมือกัน" บ่งชี้ว่าลูกค้าและเซิร์ฟเวอร์ไม่สามารถตกลงเกี่ยวกับวิธีการตั้งค่าช่องทางที่ปลอดภัยที่จำเป็นสำหรับ HTTPS เวอร์ชันของ OpenSSL ที่คุณใช้นั้นเก่ามากและเข้าใจ SSL มากถึง sslv3 เท่านั้นซึ่งเซิร์ฟเวอร์ต้องการเป็นอย่างต่ำ ดังนั้นข้อผิดพลาด "sslv3" - จะแจ้งให้คุณทราบว่าพยายามพูด SSL v3 (ซึ่งน้อยกว่า TLS v1) และล้มเหลวในการรับการตอบสนองที่มีความหมาย

คุณไม่มีโชคหากไม่ได้อัปเกรดเป็น OpenSSL เวอร์ชันที่ใหม่กว่าและถึงแม้ว่าเวอร์ชั่น curl อาจต้องกระแทกเพื่อจัดการกับเวอร์ชัน TLS ที่ใหม่กว่าด้วย

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