Dlaczego wget nie weryfikuje certyfikatów SSL?

19

Mam problem z instalacją Fedory 8 . Wygląda na to, że wgetnie wie już, jak weryfikować certyfikaty SSL. To dziwne, ponieważ mam inne pudełko Fedory 8 , które moim zdaniem ma taką samą konfigurację i działa!

Jak sprawić, by działało bez użycia --no-check-certificateprzełącznika?

To jest przykładowy wynik:

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.

EDYTOWAĆ

Mam ten plik /etc/pki/tls/certs/ca-bundle.crti kiedy uruchamiam wgetz --ca-certificateprzełącznikiem wskazującym na ten plik, wszystko idzie dobrze. Gdzie należy umieścić ten plik, aby nie musiałem używać przełącznika?

BTW: curli linksdziała dobrze, ale lynxrównież narzeka: „Błąd SSL: nie można uzyskać lokalnego certyfikatu wystawcy”, więc to nie tylko wgetproblem ...

tomazy
źródło
4
Dlaczego nawet mieć instalację Fedora 8?
Ignacio Vazquez-Abrams
1
Fedora 9, 10, 11, 12 i 13 nie są już nawet obsługiwane.
ceejayoz,
Wiem, że ten stary system operacyjny nie jest już obsługiwany, ale mam nadzieję, że jest to tylko problem z konfiguracją, który może być łatwo rozwiązany przez kogoś doświadczonego, dzięki czemu nie muszę aktualizować całego systemu.
tomazy
jakiej wersji wget używasz?
SparX
GNU Wget 1.11.1 (zmodyfikowany Red Hat)
tomazy

Odpowiedzi:

11

Domyślnie wget sprawdza certyfikaty w ścieżce zdefiniowanej w pliku openssl conf /etc/pki/tls/openssl.cnf (nie ma pewności, czy ścieżka jest poprawna dla fc8). Sprawdź plik konfiguracyjny openssl i potwierdź, że ścieżki są poprawne. Być może jest to openssl, które należy poprawić.

SparX
źródło
To był problem z plikiem openssl - brak pliku cert.pem w / etc / pki / tls. Dzięki
tomazy
5

Twój system nie ufa łańcuchowi podpisów certyfikatu Google.

Nie prezentują też pełnego łańcucha certyfikatów, tylko certyfikat ich wystawcy; nie w 100% do wartości nominalnej, ale na pewno nic, co nie powinno powstrzymywać cię od walidacji łańcucha.

Twój starożytny system prawdopodobnie będzie miał równie starożytny zestaw zaufanych głównych urzędów certyfikacji.

Zaufaj właściwemu certyfikatowi VeriSign ( tutaj ), a powinieneś być dobry.

Shane Madden
źródło
Jak dokładnie „ufam” certyfikatowi VeriSign?
tomazy
Prawdopodobnie trzeba go wprowadzić /etc/ssl/certs.
Shane Madden
Ten
katalog
Nie wiesz, gdzie znajduje się katalog certyfikatów w tym systemie operacyjnym. grepna około!
Shane Madden
4

Musisz zebrać listę certyfikatów głównych, którym chcesz zaufać, i powiedzieć, wgetjak je znaleźć za pomocą opcji --ca-certificatelub --ca-directory. Możesz już go mieć, /etc/pki/tls/certsjeśli masz zainstalowany odpowiedni pakiet.

David Schwartz
źródło
3

Miałem problemy z niemożnością znalezienia moich certyfikatów przez wget, więc zainstalowałem ca-certyfikaty

sudo apt install ca-certificates

potem edytowałem:

sudo vi /etc/wgetrc

i dodał

ca_directory=/etc/ssl/certs

lub możesz po prostu użyć tego polecenia, aby dołączyć je na końcu:

printf "\nca_directory=/etc/ssl/certs" | sudo tee -a /etc/wgetrc
Jared
źródło
alternatywnie zadziałało dla mnie, gdybym używał, wget https://myurl --ca-directory=/etc/ssl/certs/ale nie chcę wpisywać tego za każdym razem, ale nikt nie ma na to czasu ;-)
Jared