Почему 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переключателем, указывающим на этот файл, все идет хорошо. Где этот файл должен быть расположен, чтобы мне не нужно было использовать переключатель?

Кстати: curlи linksработает нормально, но lynxтакже жалуется: «Ошибка SSL: невозможно получить сертификат локального эмитента», так что это не только wgetпроблема ...

tomazy
источник
4
Почему у вас даже есть установка Fedora 8?
Игнасио Васкес-Абрамс
1
Fedora 9, 10, 11, 12 и 13 даже больше не поддерживаются.
ceejayoz
Я знаю, что это древняя ОС, которая больше не поддерживается, но я надеюсь, что это просто какая-то проблема конфигурации, которая может быть легко решена кем-то опытным, поэтому мне не нужно обновлять всю систему.
Томази
какую версию wget вы используете?
SparX
GNU Wget 1.11.1 (измененная Red Hat)
томази

Ответы:

11

По умолчанию wget будет проверять сертификаты по пути, определенному в файле conf openssl /etc/pki/tls/openssl.cnf (не уверен, что путь правильный для fc8). Пожалуйста, проверьте файл конфигурации openssl и убедитесь, что пути правильные. Может быть, это openssl, что нужно исправить.

Sparx
источник
Это была проблема с openssl - файл cert.pem отсутствовал в / etc / pki / tls. Спасибо
Томази
5

Ваша система не доверяет цепочке подписей для сертификата Google.

Они также не представляют полную цепочку сертификатов, только сертификат их эмитента; не на 100% на должном уровне, но, конечно, ничего, что не должно помешать вам проверить цепочку.

Ваша древняя система может иметь такой же древний набор доверенных корневых центров сертификации.

Доверьтесь правильному сертификату VeriSign ( здесь ), и у вас все получится.

Шейн Мэдден
источник
Как именно я «доверяю» сертификату VeriSign?
Томази
Вероятно, нужно положить в /etc/ssl/certs.
Шейн Мэдден
Этот каталог не существовал, но я создал его и скопировал файлы сертификатов - это не помогло :(
tomazy
Не уверен, где находится каталог сертификатов в этой ОС. grepвокруг!
Шейн Мэдден
4

Вам нужно собрать список корневых сертификатов, которым вы хотите доверять, и рассказать, wgetкак их найти, используя либо опцию, --ca-certificateлибо --ca-directory. Возможно, у вас уже есть один, /etc/pki/tls/certsесли у вас установлен соответствующий пакет.

Дэвид Шварц
источник
3

У меня были проблемы с wget, но я не нашел свои сертификаты

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/но я не хочу, чтобы каждый раз печатать это, и никто не получил время для этого ;-)
Джаред