Cygwin'de bir HTTPS URL'sinde wget çalıştırırken sertifika hatalarını nasıl düzeltirim?


164

Örneğin wget https://www.dropbox.com, aşağıdaki hatalarla sonuçlanır:

ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.

Yanıtlar:


131

Buradaki mevcut hacky çözümlerine baktığımda, sonuçta uygun bir çözümü tanımlamak zorunda olduğumu hissediyorum.

İlk olarak,ca-certificates sertifikaları almak için cygwin paketini Cygwin's setup.exe üzerinden kurmanız gerekir .

Sertifikaları indirmek için kıvrılma veya benzeri hack'leri KULLANMAYIN (komşu yanıt önerileri olarak) çünkü bu temelde güvensizdir ve sistemi tehlikeye atabilir.

İkinci olarak, wget'e sertifikalarınızın nerede olduğunu söylemeniz gerekir, çünkü Cygwin ortamında varsayılan olarak onları almaz. Eğer komut satırı parametresi ya o yapabiliyorsa --ca-directory=/usr/ssl/certsveya ekleyerek (kabuk komut için en iyi) ca_directory = /usr/ssl/certsiçin ~/.wgetrcdosyanın.

Bunu ln -sT /usr/ssl /etc/sslbaşka bir yanıtta belirtildiği gibi çalıştırarak da düzeltebilirsiniz , ancak bu yalnızca sisteme yönetici erişiminiz varsa işe yarayacaktır . Açıkladığım diğer çözümler buna gerek duymuyor.


5
Bu yanıt için ve özellikle ~ / .wgetrc dosyasıyla ilgili hatırlatma için teşekkür ederiz. Bir MacPorts kullanıcısı olarak, cerlerim / opt / local / etc / openssl'de yer alıyor, umarım birisi kullanışlı bulur.
Bryce Anderson

3
Ve fink için, buradaca-bundle açıklandığı gibi paketin bir parçası olarak gelen /sw/etc/ssl/certs/ca-bundle.crt dosyasındalar .
jhfrontz

Bir yazım hatası olup olmadığından emin değilim ama ln -s /etc/ssl /usr/sslbenim için çalıştı.
zkent

240

Sertifikanın geçerliliğini kontrol etmekle ilgilenmezseniz --no-check-certificate, wget komut satırına sadece seçeneği ekleyin . Bu benim için iyi çalıştı.

NOT: Bu sizi ortadaki adam (MitM) saldırılarına açar ve güvenliği önemsediğiniz hiçbir şey için önerilmez.


1
Bu benim için çalıştı. Sertifikaların yüklenmesi ve güncellenmesine ilişkin diğer çözümler, sorunu çözmedi. Benim özel durumumda güvenlik kaygısı yok.
marlar

103

Sorun, bilinen bir kök CA'nın eksik olması ve ubuntu veya debian kullanırken, sorunu bu tek satırla çözebilirsiniz:

sudo apt-get install ca-certificates

1
apt-get cygwin'de mi? apt-get redgat'ta mı? ;)
Denis Chenu

5
ca-sertifikalar bilgisayarıma zaten kurulmuştu. Koşmak update-ca-certificatessorunu çözdü.
Tomás Fox

Bu aynı zamanda Debian chroot ile Synology DS215j üzerinde de çalıştı.
microspino

@fox update-ca-certificatesubuntu komutudur, debian dilinde yoktur.
Devy

@Devy Aslında ahududu pi çalışan debian wheezy üzerinde çalıştı
Luis Lobo Borobia

13

İlk olarak, SSL sertifikalarının yüklenmesi gerekir. Talimatlar ( https://stackoverflow.com/a/4454754/278488 adresine göre ):

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

Yukarıdakilerin düzeltilmesi yeterlidir curl, ancak wgetekstra bir sembolik bağlantı gerektirir:

ln -sT /usr/ssl /etc/ssl

6
Bu kök sertifika yetkililerini özellikle adında haxx olmak üzere rasgele bir web sitesinden yüklemek güvenli değil mi?
Chloe

6
@Chloe curl.haxx.se bu cURL'nin dev sitesidir. Oldukça güvenilir insanlar.
17'de ylluminate

kıvrılmadan nasıl düzeltirsiniz?
Mark Lakata

1
omfg symlink kaçırdım ne oldu ... 1 liner düzeltme için 30 dk aradı> <
Populus

4
Bu, birkaç düzeyde hacky. İlk olarak, sertifikaları manuel olarak indirmenize gerek yoktur çünkü "ca-certificate" adı verilen bir Cygwin paketi vardır. İkincisi, symlinking yalnızca sisteme yönetici erişiminiz varsa veya yalnızca kullanıcı hesabınız için cygwin yüklediyseniz çalışır, bu her zaman böyle değildir, bu nedenle kod güvenilir değildir.
Shnatsel

10

Belki bu yardımcı olur:

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

1
Bir tane daha: Kaspersky AntiVirus veya aynı yazılım kullanıyorsanız (varsayılan olarak, sitenin normal olarak doğrulanmış SSL sertifikasını kendi yerine değiştiriyorsa) bu durum da mümkündür - böylece Antivirus yazılımında SSL trafiğini kontrol etmeyi devre dışı bırakabilirsiniz.
Alexey Soloviev

4
apt-get install ca-certificates 

sFarketmez;)


apt-getCygwin'de hiç yok , bu yüzden işe yaramıyor.
JLH

1

Benzer bir sorunum var ve antivirüsümü geçici olarak devre dışı bırakarak çözdüm (Kaspersky Free 18.0.0.405). Bu AV, HTTPS yanıtlarında bulduğu tüm sertifikaları otomatik olarak imzalayan HTTPS yakalama modülüne sahiptir.

Cygwin'den Wget, AV kök sertifikası hakkında hiçbir şey bilmiyor, bu nedenle web sitesinin sertifikasının güvenli olmayan sertifika ile imzalandığını tespit ettiğinde bu hatayı yazdırıyor.

AV'yi devre dışı bırakmadan bu sorunu kalıcı olarak gidermek için AV kök sertifikasını Windows sertifika deposundan /etc/pki/ca-trust/source/anchors.pem dosyası (base64 kodlaması) olarak kopyalamalı ve çalıştırmalısınız.update-ca-trust



-4

Windows kullanıyorsanız sadece kontrol paneline gidin, otomatik güncellemeleri tıklayın, ardından Windows Update Web Sitesi bağlantısını tıklayın. Sadece adımı izleyin. En azından bu benim için çalışıyor, daha fazla sertifika sorunu yok, yani daha önce olduğu gibi https: //www.dropbox.com'a gittiğimde .


Bu Cygwin
Synthead
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.