Как исправить ошибки сертификата при запуске wget на URL HTTPS в 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 to .

вы также можете исправить, что работает 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

apt-get install ca-certificates 

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


просто делать

apt-get install ca-certificate

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

wget --no-check-certificate https://blah-blah.tld/path/filename

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