มีวิธีในการระบุ curl เพื่อใช้ TLS เวอร์ชันที่ระบุหรือไม่ ชอบ 1.1 หรือ 1.2 ฉันเห็นตัวเลือก sslv3 และ tlsv1 เท่านั้นในวิธีใช้คำสั่ง ฉันใช้ src ล่าสุดและคอมไพล์ด้วย openssl 1.0.1e ยังไม่เห็นตัวเลือกโดยตรงในความช่วยเหลือ มีวิธีอื่นในการตั้งค่าหรือไม่
มีวิธีในการระบุ curl เพื่อใช้ TLS เวอร์ชันที่ระบุหรือไม่ ชอบ 1.1 หรือ 1.2 ฉันเห็นตัวเลือก sslv3 และ tlsv1 เท่านั้นในวิธีใช้คำสั่ง ฉันใช้ src ล่าสุดและคอมไพล์ด้วย openssl 1.0.1e ยังไม่เห็นตัวเลือกโดยตรงในความช่วยเหลือ มีวิธีอื่นในการตั้งค่าหรือไม่
คำตอบ:
ตั้งแต่เวอร์ชั่น 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)
นอกจากนี้ถึง--tlsvX.Y
/ --sslvZ
ซึ่งทำให้ยากต่อการเลือกโปรโตคอลที่จะเลือกคุณอาจใช้--tls-max x.y
ในการควบคุมการเจรจาโปรโตคอลอย่างนุ่มนวล
พฤติกรรมของ 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
ลองดูที่ตัวเลือก --cipher manpage เห็นและเอกสาร OpenSSL คุณควรจะสามารถให้รายการรหัสที่จะบังคับรุ่นที่แน่นอน