ฉันจะแก้ไขข้อผิดพลาดใบรับรองได้อย่างไรเมื่อใช้งาน HTTPS URL ใน Cygwin


คำตอบ:


131

เมื่อดูที่โซลูชันแฮ็คปัจจุบันที่นี่ฉันรู้สึกว่าฉันต้องอธิบายวิธีแก้ไขที่เหมาะสมหลังจากทั้งหมด

ก่อนอื่นคุณต้องติดตั้งแพคเกจ cygwin ca-certificatesผ่านทาง setup.exe ของ Cygwin เพื่อรับใบรับรอง

อย่าใช้ curl หรือแฮ็กที่คล้ายกันเพื่อดาวน์โหลดใบรับรอง (เป็นคำแนะนำคำตอบที่อยู่ใกล้เคียง) เพราะมันไม่ปลอดภัยและอาจส่งผลกระทบต่อระบบ

ประการที่สองคุณต้องบอกให้คุณทราบว่าใบรับรองของคุณอยู่ที่ไหนเพราะไม่รับโดยค่าเริ่มต้นในสภาพแวดล้อม Cygwin หากคุณสามารถทำได้ด้วยพารามิเตอร์บรรทัดคำสั่ง--ca-directory=/usr/ssl/certs(ดีที่สุดสำหรับเชลล์สคริปต์) หรือโดยการเพิ่มca_directory = /usr/ssl/certsลงใน~/.wgetrcไฟล์

คุณยังสามารถแก้ไขได้โดยการทำงานln -sT /usr/ssl /etc/sslตามที่ระบุไว้ในคำตอบอื่น แต่จะทำงานได้ก็ต่อเมื่อคุณมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ โซลูชันอื่น ๆ ที่ฉันอธิบายไม่จำเป็นต้องใช้


5
ขอบคุณสำหรับคำตอบนี้และโดยเฉพาะอย่างยิ่งสำหรับการเตือนเกี่ยวกับไฟล์ ~ / .wgetrc ในฐานะผู้ใช้ MacPort certs ของฉันอยู่ที่ / opt / local / etc / openssl ความจริงที่ฉันหวังว่าจะมีคนเห็นว่ามีประโยชน์
Bryce Anderson

3
และสำหรับตำรวจพวกเขาอยู่ใน /sw/etc/ssl/certs/ca-bundle.crt ที่มาเป็นส่วนหนึ่งของca-bundleแพคเกจ - ตามที่อธิบายไว้ที่นี่
jhfrontz

ไม่แน่ใจว่ามันเป็นคำผิด แต่ln -s /etc/ssl /usr/sslใช้ได้สำหรับฉัน
zkent

240

หากคุณไม่สนใจเกี่ยวกับการตรวจสอบความถูกต้องของใบรับรองเพียงเพิ่ม--no-check-certificateตัวเลือกในบรรทัดคำสั่ง wget นี้ทำงานได้ดีสำหรับฉัน.

หมายเหตุ: นี่จะเป็นการเปิดการโจมตีของคุณในแบบกึ่งกลาง (MitM) และไม่แนะนำให้ใช้กับสิ่งที่คุณสนใจเกี่ยวกับความปลอดภัย


1
สิ่งนี้ใช้ได้สำหรับฉัน โซลูชันอื่น ๆ เกี่ยวกับการติดตั้งและอัปเดตใบรับรองไม่ได้แก้ปัญหา ในกรณีของฉันโดยเฉพาะไม่มีปัญหาด้านความปลอดภัย
marlar

103

หากปัญหาคือว่ารูท CA ที่เป็นที่รู้จักหายไปและเมื่อคุณใช้อูบุนตูหรือเดเบียนคุณสามารถแก้ปัญหาด้วยหนึ่งบรรทัดนี้:

sudo apt-get install ca-certificates

1
apt-get อยู่บน cygwin? apt-get อยู่ใน redgat? ;)
Denis Chenu

5
มีการติดตั้งใบรับรอง ca ในคอมพิวเตอร์ของฉันแล้ว วิ่งupdate-ca-certificatesแก้ปัญหาได้
Tomás Fox

สิ่งนี้ใช้ได้กับ Synology DS215j ของฉันกับ Debian chroot ด้วย
microspino

@fox update-ca-certificatesเป็นคำสั่ง ubuntu ไม่พร้อมใช้งานในเดเบียน
Devy

@Devy มันใช้งานได้จริงบน raspberry pi ของฉันกำลังวิ่ง debian
wheezy

13

ก่อนอื่นต้องติดตั้งใบรับรอง SSL คำแนะนำ (ขึ้นอยู่กับhttps://stackoverflow.com/a/4454754/278488 ):

pushd /usr/ssl/certs
curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
c_rehash

ด้านบนเพียงพอที่จะแก้ไขcurlแต่wgetต้องการ symlink เพิ่มเติม:

ln -sT /usr/ssl /etc/ssl

6
สิ่งนี้ไม่ปลอดภัยในการติดตั้งผู้ออกใบรับรองหลักจากเว็บไซต์สุ่มโดยเฉพาะกับ haxx ในชื่อหรือไม่
Chloe

6
@Chloe curl.haxx.se นั่นคือเว็บไซต์ dev ของ cURL คนที่น่าเชื่อถือสวย
ylluminate

คุณจะแก้ไขได้อย่างไรโดยไม่ต้องงอ
Mark Lakata

1
omfg the symlink เป็นสิ่งที่ฉันพลาด ... ค้นหา 30 นาทีสำหรับ 1 liner Fix> <
Populus

4
นี่คือแฮ็คในหลายระดับ ก่อนอื่นคุณไม่จำเป็นต้องดาวน์โหลดใบรับรองด้วยตนเองเพราะมีแพ็คเกจ Cygwin สำหรับสิ่งที่เรียกว่า "ca-certificate" ประการที่สองการเชื่อมโยงจะทำงานได้ก็ต่อเมื่อคุณมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบหรือคุณได้ติดตั้ง cygwin สำหรับบัญชีผู้ใช้ของคุณเท่านั้นซึ่งไม่ได้เป็นเช่นนั้นเสมอไปดังนั้นรหัสไม่น่าเชื่อถือ
Shnatsel

10

อาจเป็นเช่นนี้จะช่วย:

wget --no-check-certificate https://blah-blah.tld/path/filename

1
อีกอย่างหนึ่ง: สถานการณ์เช่นนี้อาจเกิดขึ้นได้หากคุณใช้ Kaspersky AntiVirus หรือซอฟต์เดียวกัน (โดยค่าเริ่มต้นมันจะแทนที่ใบรับรอง SSL ที่ตรวจสอบแล้วปกติของเว็บไซต์เป็นของตนเอง) - ดังนั้นคุณสามารถปิดใช้งานการตรวจสอบปริมาณการใช้งาน SSL
Alexey Soloviev

4
apt-get install ca-certificates 

sทำให้แตกต่าง;)


ไม่มีapt-getใน cygwin ดังนั้นจึงใช้งานไม่ได้
jlh

1

ฉันมีปัญหาที่คล้ายกันและแก้ไขได้โดยการปิดใช้งานโปรแกรมป้องกันไวรัสชั่วคราว (Kaspersky ฟรี 18.0.0.405) AV นี้มีโมดูลการสกัดกั้น HTTPS ที่ลงนามด้วยตนเองโดยอัตโนมัติใบรับรองทั้งหมดที่พบในการตอบสนอง HTTPS

Wget จาก Cygwin ไม่ทราบอะไรเกี่ยวกับใบรับรองรูท AV ดังนั้นเมื่อพบว่าใบรับรองของเว็บไซต์ถูกเซ็นรับรองด้วยใบรับรองที่ไม่น่าเชื่อถือ

ในการแก้ไขปัญหานี้อย่างถาวรโดยไม่ปิดใช้งาน AV คุณควรคัดลอกใบรับรอง AV root จากที่เก็บใบรับรอง Windows ไป/etc/pki/ca-trust/source/anchorsเป็นไฟล์. pem (การเข้ารหัส base64) และเรียกใช้update-ca-trust



-4

หากคุณใช้ windows เพียงไปที่แผงควบคุมให้คลิกที่การปรับปรุงอัตโนมัติจากนั้นคลิกที่ลิงค์ Windows Update เว็บไซต์ เพียงทำตามขั้นตอน อย่างน้อยก็ใช้งานได้สำหรับฉันไม่มีปัญหาใบรับรองเช่นเมื่อใดก็ตามที่ฉันไปที่https://www.dropbox.comเหมือนเมื่อก่อน


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