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

Ответ 1

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

Во-первых, вам нужно установить пакет 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, как указано в другом ответе, но это будет работать , только если у вас есть административный доступ к системе. Другие описанные вами решения не требуют этого.

Ответ 2

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

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

Ответ 3

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

sudo apt-get install ca-certificates

Ответ 4

Сначала необходимо установить SSL-сертификаты. Инструкции (на основе fooobar.com/questions/2821/...):

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

Ответ 5

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

apt-get install ca-certificate

Ответ 6

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