Как исправить ошибки сертификата при запуске wget по URL-адресу HTTPS в Cygwin? - PullRequest
154 голосов
/ 10 февраля 2012

Например, запуск wget https://www.dropbox.com приводит к следующим ошибкам:

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

Ответы [ 9 ]

227 голосов
/ 08 января 2013

Если вам не нужна проверка действительности сертификата, просто добавьте параметр --no-check-certificate в командной строке wget.Это хорошо сработало для меня.

ПРИМЕЧАНИЕ. Это открывает вам возможности для атак типа "человек посередине" (MitM) и не рекомендуется ни для чего, где вы заботитесь о безопасности.

127 голосов
/ 06 марта 2013

Глядя на текущие хакерские решения, я чувствую, что в конце концов мне нужно описать правильное решение.

Во-первых, вам необходимо установить пакет cygwin ca-certificates через setup.exe Cygwin для получения сертификатов.

НЕ используйте curl или аналогичные хаки для загрузки сертификатов (как совет соседнего ответа), потому что принципиально небезопасно и может поставить под угрозу систему.

Во-вторых, вы должны указать wget, где находятся ваши сертификаты, поскольку он не принимает их по умолчанию в среде Cygwin. Если вы можете сделать это либо с параметром командной строки --ca-directory=/usr/ssl/certs (лучше всего для сценариев оболочки), либо добавив ca_directory = /usr/ssl/certs в ~/.wgetrc файл.

Вы также можете исправить это, запустив ln -sT /usr/ssl /etc/ssl, как указано в другом ответе, но это сработает , только если у вас есть административный доступ к системе. Другие описанные мной решения не требуют этого.

96 голосов
/ 11 ноября 2012

Если проблема в том, что отсутствует известный корневой CA, и когда вы используете Ubuntu или Debian, вы можете решить проблему с помощью одной строки:

sudo apt-get install ca-certificates
13 голосов
/ 10 февраля 2012

Во-первых, необходимо установить сертификаты SSL.Инструкции (основанные на 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

Выше достаточно исправить curl, но wget требует дополнительной символической ссылки:

ln -sT /usr/ssl /etc/ssl
7 голосов
/ 04 июня 2018

Может быть, это поможет:

wget --no-check-certificate https://blah-blah.tld/path/filename
2 голосов
/ 16 января 2018
apt-get install ca-certificates 

s имеет значение;)

1 голос
/ 29 октября 2018

У меня похожая проблема, и я исправил ее, временно отключив антивирус (Kaspersky Free 18.0.0.405).У этого AV есть модуль перехвата HTTPS, который автоматически самоподписывает все сертификаты, которые он находит в ответах HTTPS.

Wget от Cygwin ничего не знает о корневом сертификате AV, поэтому, когда он обнаруживает, что сертификат веб-сайта был подписан с помощью сертификата, не являющегося довереннымэто печатает эту ошибку.

Чтобы исправить это навсегда, не отключая AV, необходимо скопировать корневой сертификат AV из хранилища сертификатов Windows в /etc/pki/ca-trust/source/anchors в виде файла .pem (кодировка base64) и запустить update-ca-trust

0 голосов
/ 29 июля 2017

Просто сделай

apt-get install ca-certificate
0 голосов
/ 20 августа 2014

Если вы используете Windows, просто перейдите на панель управления, нажмите на автоматические обновления, затем нажмите на ссылку веб-сайта Центра обновления Windows.Просто следуйте за шагом.По крайней мере, это работает для меня, больше не выдача сертификатов, т. Е. Всякий раз, когда я иду к https://www.dropbox.com, как раньше.

...