Как исправить ошибки сертификата при запуске wget на HTTPS URL в Cygwin?
например,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.
8 ответов:
глядя на текущие хакерские решения здесь, я чувствую, что должен описать правильное решение в конце концов.
первый, вам необходимо установить пакет cygwin
ca-certificates
через настройки Cygwin.exe для получения сертификатов.Не используйте curl или подобные хаки для загрузки сертификатов (как советы соседнего ответа), потому что это принципиально небезопасно и может поставить под угрозу систему.
второе, вы должны сказать wget, где находятся ваши сертификаты, так как он не забирает их по умолчанию в среде Cygwin. Если вы можете сделать это с параметром командной строки
--ca-directory=/usr/ssl/certs
(лучше всего для сценариев оболочки) или путем добавленияca_directory = /usr/ssl/certs
до .вы также можете исправить, что работает
ln -sT /usr/ssl /etc/ssl
как указано в другом ответе, но это будет работать только если у вас есть административный доступ к системе. другие решения, которые я описал, не требуют этого.
Если вы не заботитесь о проверке действительности сертификата просто добавьте
--no-check-certificate
опция в командной строке wget. Это хорошо сработало для меня.Примечание: это открывает вам До человек-в-середине (MitM) атак, и не рекомендуется ни для чего, где вы заботитесь о безопасности.
Если проблема заключается в том, что известный корневой CA отсутствует, и когда вы используете ubuntu или debian, то вы можете решить проблему с помощью этой одной строки:
sudo apt-get install ca-certificates
во-первых, необходимо установить 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
Если вы используете windows, просто перейдите в Панель управления, нажмите на автоматические обновления, а затем нажмите на ссылку веб-сайта Центра Обновления Windows. Просто следуйте шагу. По крайней мере, это работает для меня, больше никаких сертификатов, т. е. всякий раз, когда я иду в https://www.dropbox.com как и раньше.