Например, выполнение 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.
Например, выполнение 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.
Ответы:
Глядя на текущие хакерские решения, я чувствую, что в конце концов мне нужно описать правильное решение.
Во-первых, вам нужно установить пакет cygwin ca-certificates
через Cygwin setup.exe, чтобы получить сертификаты.
НЕ ИСПОЛЬЗУЙТЕ скручивание или аналогичные методы взлома для загрузки сертификатов (как совет соседнего ответа), потому что это принципиально небезопасно и может поставить под угрозу систему.
Во-вторых, вам нужно указать wget, где находятся ваши сертификаты, поскольку он не принимает их по умолчанию в среде Cygwin. Если вы можете сделать это либо с параметром командной строки --ca-directory=/usr/ssl/certs
(лучше всего для сценариев оболочки), либо путем добавления ca_directory = /usr/ssl/certs
в ~/.wgetrc
файл.
Вы также можете исправить это, выполнив, ln -sT /usr/ssl /etc/ssl
как указано в другом ответе, но это будет работать, только если у вас есть административный доступ к системе. Другие решения, которые я описал, не требуют этого.
ln -s /etc/ssl /usr/ssl
работал на меня.
Если вам не нужно проверять действительность сертификата, просто добавьте --no-check-certificate
параметр в командной строке wget. Это хорошо сработало для меня.
ПРИМЕЧАНИЕ. Это открывает доступ к атакам типа «человек посередине» и не рекомендуется ни для чего, где вы заботитесь о безопасности.
Если проблема в том, что известный корневой CA отсутствует, и когда вы используете Ubuntu или Debian, вы можете решить проблему с помощью одной строки:
sudo apt-get install ca-certificates
update-ca-certificates
решил проблему.
update-ca-certificates
- это команда Ubuntu, недоступная в Debian.
Во-первых, необходимо установить сертификаты 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
Может быть, это поможет:
wget --no-check-certificate https://blah-blah.tld/path/filename
У меня есть похожая проблема, и я исправил ее, временно отключив антивирус (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
Если вы используете Windows, просто перейдите на панель управления, нажмите на автоматические обновления, а затем нажмите на ссылку веб-сайта Центра обновления Windows. Просто следуйте за шагом. По крайней мере, это работает для меня, больше не выдача сертификатов, т. Е. Всякий раз, когда я иду на https://www.dropbox.com, как раньше.