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