เหตุใด wget จึงไม่ยืนยันใบรับรอง SSL


19

ฉันมีปัญหากับการติดตั้งFedora 8 ดูเหมือนว่าwgetจะไม่ทราบวิธียืนยันใบรับรอง SSL อีกต่อไป มันแปลกเพราะฉันมีกล่องFedora 8อีกกล่องซึ่งฉันเชื่อว่ามีการตั้งค่าเหมือนกันและใช้งานได้!

ฉันจะทำให้มันทำงานโดยไม่ใช้--no-check-certificateสวิตช์ได้อย่างไร

นี่คือเอาต์พุตตัวอย่าง:

wget https://www.google.com
--2011-09-23 00:11:13--  https://www.google.com/
Resolving www.google.com... 74.125.230.146, 74.125.230.147, 74.125.230.148, ...
Connecting to www.google.com|74.125.230.146|:443... connected.
ERROR: cannot verify www.google.com's certificate, issued by `/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA':
  Unable to locally verify the issuer's authority.
To connect to www.google.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.

แก้ไข

ฉันมีไฟล์ไฟล์นี้/etc/pki/tls/certs/ca-bundle.crtและเมื่อฉันเรียกใช้wgetด้วย--ca-certificateสวิตช์ชี้ไปที่ไฟล์นี้ทุกอย่างเป็นไปด้วยดี ไฟล์นี้ควรวางไว้ที่ไหนเพื่อที่ฉันจะได้ไม่ต้องใช้สวิตช์?

BTW: curlและlinksทำงานได้ดี แต่lynxยังบ่นว่า: "ข้อผิดพลาด SSL: ไม่สามารถรับใบรับรองผู้ออกท้องถิ่น"ดังนั้นนี่จึงไม่ใช่แค่wgetปัญหา ...


4
ทำไมคุณถึงแม้จะมีการติดตั้ง Fedora 8?
Ignacio Vazquez-Abrams

1
Fedora 9, 10, 11, 12 และ 13 ยังไม่ได้รับการสนับสนุนอีกต่อไป
ceejayoz

ฉันรู้ว่านี่เป็นระบบปฏิบัติการโบราณที่ไม่รองรับอีกต่อไป แต่ฉันหวังว่านี่เป็นปัญหาการกำหนดค่าบางอย่างที่บางคนอาจมีปัญหาในการแก้ไขได้อย่างง่ายดายดังนั้นฉันจึงไม่จำเป็นต้องอัพเกรดทั้งระบบ
tomazy

รุ่นของ wget ที่คุณใช้คืออะไร
SparX

GNU Wget 1.11.1 (แก้ไข Red Hat)
tomazy

คำตอบ:


11

โดยค่าเริ่มต้น wget จะตรวจสอบใบรับรองในพา ธ ที่กำหนดใน openssl conf file /etc/pki/tls/openssl.cnf (ไม่แน่ใจว่าพา ธ นั้นถูกต้องสำหรับ fc8) โปรดตรวจสอบไฟล์กำหนดค่า openssl และยืนยันว่าเส้นทางนั้นถูกต้อง อาจเป็น openssl ซึ่งต้องได้รับการแก้ไข


มันเป็นปัญหากับไฟล์ openssl - cert.pem หายไปใน / etc / pki / tls ขอบคุณ
tomazy

5

ระบบของคุณไม่เชื่อถือห่วงโซ่ลายเซ็นสำหรับใบรับรองของ Google

พวกเขายังไม่ได้นำเสนอห่วงโซ่ใบรับรองเต็มรูปแบบเพียงใบรับรองของผู้ออก; ไม่ถึง 100% แต่แน่นอนไม่มีอะไรที่จะหยุดคุณจากการตรวจสอบห่วงโซ่

ระบบโบราณของคุณมีแนวโน้มที่จะมีผู้ออกใบรับรองหลักที่เชื่อถือได้จำนวนเท่า ๆ กัน

ไว้วางใจใบรับรอง VeriSign ที่ถูกต้อง ( ที่นี่ ) และคุณควรจะดี


ฉันจะ "เชื่อถือ" ใบรับรอง VeriSign ได้อย่างไร
tomazy

/etc/ssl/certsอาจจะต้องมีการวางใน
เชนแมดเดน

dir นี้ไม่มีอยู่ แต่ฉันสร้างและคัดลอกไฟล์ใบรับรอง - มันไม่ได้ช่วย :(
tomazy

ไม่แน่ใจว่าอยู่ที่ไหนไดเรกทอรีไดเรกทอรีตั้งอยู่ในระบบปฏิบัติการนั้น grepรอบ!
เชนหัวเสีย

4

คุณต้องรวบรวมรายชื่อของใบรับรองหลักที่คุณต้องการเชื่อถือและบอกwgetวิธีการค้นหาโดยใช้ตัวเลือก--ca-certificateหรือ --ca-directoryคุณอาจมีหนึ่งใน/etc/pki/tls/certsถ้าคุณมีแพคเกจที่เหมาะสมติดตั้ง


3

ฉันมีปัญหากับการที่ไม่พบใบรับรองของฉันดังนั้นฉันจึงติดตั้งใบรับรอง CA

sudo apt install ca-certificates

จากนั้นฉันแก้ไข:

sudo vi /etc/wgetrc

และเพิ่ม

ca_directory=/etc/ssl/certs

หรือคุณสามารถใช้คำสั่งนี้เพื่อผนวกท้าย:

printf "\nca_directory=/etc/ssl/certs" | sudo tee -a /etc/wgetrc

อีกทางหนึ่งก็ใช้งานได้สำหรับฉันถ้าฉันใช้wget https://myurl --ca-directory=/etc/ssl/certs/แต่ฉันไม่ต้องการที่จะพิมพ์สิ่งนั้นทุกครั้งไม่มีใครมีเวลาสำหรับมัน ;-) #
Jared
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.