Na przykład uruchomienie wget https://www.dropbox.com
skutkuje następującymi błędami:
ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
Na przykład uruchomienie wget https://www.dropbox.com
skutkuje następującymi błędami:
ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
Odpowiedzi:
Patrząc na obecne, hakerskie rozwiązania, czuję, że mimo wszystko muszę opisać właściwe rozwiązanie.
Najpierw musisz zainstalować pakiet cygwin ca-certificates
za pośrednictwem programu setup.exe Cygwin, aby uzyskać certyfikaty.
NIE używaj curl lub podobnych hacków do pobierania certyfikatów (jako sąsiednich porad dotyczących odpowiedzi), ponieważ jest to zasadniczo niepewne i może zagrozić systemowi.
Po drugie, musisz powiedzieć wget, gdzie są twoje certyfikaty, ponieważ nie pobiera ich domyślnie w środowisku Cygwin. Jeśli możesz to zrobić za pomocą parametru wiersza polecenia --ca-directory=/usr/ssl/certs
(najlepiej dla skryptów powłoki) lub przez dodanie ca_directory = /usr/ssl/certs
do ~/.wgetrc
pliku.
Możesz to również naprawić, uruchamiając ln -sT /usr/ssl /etc/ssl
zgodnie z inną odpowiedzią, ale zadziała to tylko wtedy, gdy masz dostęp administracyjny do systemu. Inne opisane przeze mnie rozwiązania tego nie wymagają.
ln -s /etc/ssl /usr/ssl
zadziałało dla mnie.
Jeśli nie zależy Ci na sprawdzeniu ważności certyfikatu, po prostu dodaj --no-check-certificate
opcję w wierszu poleceń wget. To działało dobrze dla mnie.
UWAGA: Otwiera to cię na ataki typu man-in-the-middle (MitM) i nie jest zalecane w przypadku niczego, na czym zależy Ci na bezpieczeństwie.
Jeśli problem polega na tym, że brakuje znanego głównego urzędu certyfikacji i gdy używasz Ubuntu lub Debian, możesz rozwiązać problem za pomocą tej jednej linii:
sudo apt-get install ca-certificates
update-ca-certificates
rozwiązało problem.
update-ca-certificates
to polecenie ubuntu, niedostępne w debianie.
Najpierw należy zainstalować certyfikaty SSL. Instrukcje (na podstawie 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
Powyższe wystarczy, aby naprawić curl
, ale wget
wymaga dodatkowego łącza symbolicznego:
ln -sT /usr/ssl /etc/ssl
Może to pomoże:
wget --no-check-certificate https://blah-blah.tld/path/filename
Mam podobny problem i naprawiłem go, tymczasowo wyłączając program antywirusowy (Kaspersky Free 18.0.0.405). To AV ma moduł przechwytywania HTTPS, który automatycznie podpisuje wszystkie certyfikaty znalezione w odpowiedziach HTTPS.
Wget z Cygwin nie wie nic o certyfikacie głównym AV, więc gdy stwierdzi, że certyfikat tej witryny został podpisany certyfikatem nieufnym, drukuje ten błąd.
Aby to naprawić na stałe bez wyłączania AV, należy skopiować główny certyfikat AV z magazynu certyfikatów systemu Windows do /etc/pki/ca-trust/source/anchors
pliku .pem (kodowanie base64) i uruchomićupdate-ca-trust
Jeśli używasz systemu Windows, po prostu przejdź do panelu sterowania, kliknij automatyczne aktualizacje, a następnie kliknij łącze Witryna sieci Web Windows Update. Po prostu postępuj zgodnie z instrukcjami. Przynajmniej to działa dla mnie, nie ma już wydawania certyfikatów, tj. Za każdym razem, gdy wchodzę na https://www.dropbox.com, jak poprzednio.