Чому 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.

EDIT

У мене є цей файловий /etc/pki/tls/certs/ca-bundle.crtфайл, і коли я запускаю wgetз --ca-certificateперемикачем, що вказує на цей файл, все йде нормально. Де слід розмістити цей файл, щоб мені не потрібно було використовувати комутатор?

BTW: curlі linksпрацювати нормально, але lynxтакож скаржиться: "Помилка SSL: не в змозі отримати сертифікат місцевого емітента", тому це не лише wgetпитання ...


4
Чому у вас навіть встановлення Fedora 8?
— Ігнасіо Васкес-Абрамс

1
Fedora 9, 10, 11, 12 і 13 вже навіть не підтримується.
— ceejayoz

Я знаю, що давня ОС більше не підтримується, але сподіваюся, що це лише якась проблема конфігурації, яку може легко вирішити хтось досвідчений, тому мені не потрібно оновлювати всю систему.
— томази

яку версію wget ви використовуєте?
— SparX

GNU Wget 1.11.1 (модифікований Red Hat)
— tomazy

Відповіді:


11

За замовчуванням wget перевірить наявність сертифікатів у шляху, визначеному у файлі openssl conf /etc/pki/tls/openssl.cnf (не впевнений, чи правильний шлях для fc8). Перевірте файл конфігурації openssl і переконайтеся, що шляхи правильні. Можливо, це Opensl, яке потрібно виправити.


Виникла проблема з openssl - у файлі / etc / pki / tls відсутній файл cert.pem. Спасибі
— tomazy

5

Ваша система не довіряє ланцюгу підписів на серті Google.

Вони також не представляють повний ланцюжок сертифікатів, а лише сертифікат свого емітента; не на 100% до номіналу, але, безумовно, нічого, що не повинно заважати вам перевірити ланцюжок.

У вашій стародавній системі, ймовірно, є такий же древній набір довірених авторитетів кореневих сертифікатів.

Довіряйте правильному cert VeriSign ( тут ), і ви повинні бути хорошими.


Як саме я "довіряю" серту VeriSign?
— tomazy

Напевно, потрібно поставити /etc/ssl/certs.
— Шейн Мадден

Цей редактор не існував, але я створив його і скопіював файли cert - це не допомогло :(
— tomazy

Тоді не знаєте, де в цій ОС знаходиться каталог сертифікатів. grepнавколо!
— Шейн Медден

4

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


3

У мене виникли проблеми з тим, що wget не знайшов своїх сертифікатів, тому я встановив ca-сертифікати

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/але я не хочу вводити це кожен раз, бо ніхто не мав часу на це ;-)
— Джаред
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.