การระบุเวอร์ชัน TLS เล็กน้อยเมื่อใช้ curl


19

มีวิธีในการระบุ curl เพื่อใช้ TLS เวอร์ชันที่ระบุหรือไม่ ชอบ 1.1 หรือ 1.2 ฉันเห็นตัวเลือก sslv3 และ tlsv1 เท่านั้นในวิธีใช้คำสั่ง ฉันใช้ src ล่าสุดและคอมไพล์ด้วย openssl 1.0.1e ยังไม่เห็นตัวเลือกโดยตรงในความช่วยเหลือ มีวิธีอื่นในการตั้งค่าหรือไม่


2
ฉันไม่เห็นตัวเลือกใด ๆ สำหรับการตั้งค่า TLS รุ่นรองเช่นกัน โปรดดูเพิ่มเติมที่หัวข้อนี้ : "นั่นเป็นเพราะเมื่อ libcurl ได้รับการกำหนดค่าให้ใช้ TLSv1 มันจะใช้หมายเลขเวอร์ชันสูงสุดโดยอัตโนมัติที่สนับสนุนโดยไลบรารี TLS ของคุณและลดระดับเป็น TLS 1.0 หากเซิร์ฟเวอร์ไม่รองรับ 1.1 หรือ 1.2 ไม่มีการแยกกัน ตัวเลือกที่นี่เพราะจนกว่าจะพบปัญหาร้ายแรงใน 1.0 ไม่จำเป็นต้องมีตัวเลือกแยกต่างหาก "
Karan

คำตอบ:


15

ตั้งแต่เวอร์ชั่น 7.34.0, Curl มีตัวเลือก--tlsv1.0, --tlsv1.1และ--tlsv1.2เพื่อการนี้

manpageกล่าวว่า

-1, --tlsv1

(SSL) บังคับให้ curl ใช้ TLS เวอร์ชัน 1.x เมื่อเจรจากับเซิร์ฟเวอร์ TLS ระยะไกล คุณสามารถใช้ตัวเลือก --tlsv1.0, --tlsv1.1 และ --tlsv1.2 เพื่อควบคุมเวอร์ชัน TLS ได้แม่นยำยิ่งขึ้น (หากแบ็กเอนด์ SSL ที่ใช้งานอยู่รองรับระดับการควบคุมดังกล่าว)

...

--tlsv1.2

(SSL) บังคับให้ curl ใช้ TLS เวอร์ชัน 1.2 เมื่อเจรจากับเซิร์ฟเวอร์ TLS ระยะไกล (เพิ่มใน 7.34.0)


3

นอกจากนี้ถึง--tlsvX.Y/ --sslvZซึ่งทำให้ยากต่อการเลือกโปรโตคอลที่จะเลือกคุณอาจใช้--tls-max x.yในการควบคุมการเจรจาโปรโตคอลอย่างนุ่มนวล


1

พฤติกรรมของ Curl เปลี่ยนไป!

สำหรับเวอร์ชั่นก่อน 7.54.0 คำตอบของ RedGrittyBrick ยังคงถูกต้อง สำหรับรุ่นของขดหลัง 7.54.0 ตัวเลือก--tlsv1.0, --tlsv1.1และ--tlsv1.2การตั้งค่าขั้นต่ำรุ่นของ TLS ที่จะใช้ขด --tls-max <VERSION>เพื่อระบุการใช้งานสูงสุด

จากmanpage :

--tls สูงสุด

(SSL) VERSION กำหนดเวอร์ชัน TLS สูงสุดที่รองรับ เวอร์ชันต่ำสุดที่ยอมรับได้ถูกตั้งค่าโดย tlsv1.0, tlsv1.1, tlsv1.2 หรือ tlsv1.3


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