Я не могу открыть URL-адреса https с помощью wget или curl:
$ wget https://www.python.org
--2015-04-27 17:17:33-- https://www.python.org/
Resolving www.python.org (www.python.org)... 103.245.222.223
Connecting to www.python.org (www.python.org)|103.245.222.223|:443... connected.
ERROR: cannot verify www.python.org's certificate, issued by "/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA":
Unable to locally verify the issuer's authority.
To connect to www.python.org insecurely, use '--no-check-certificate'.
$ curl https://www.python.org
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
Это использует wget 1.12 и curl 7.30.0 на CentOS 5.5. Похоже, что-то не так с моим локальным хранилищем сертификатов, но я не знаю, как действовать дальше. Есть идеи?
Обновление: после обновления пакета openssl с 0.9.8e-12.el5_4.6 до 0.9.8e-33.el5_11, теперь есть другая ошибка:
$ wget https://pypi.python.org
--2015-04-28 10:27:35-- https://pypi.python.org/
Resolving pypi.python.org (pypi.python.org)... 103.245.222.223
Connecting to pypi.python.org (pypi.python.org)|103.245.222.223|:443... connected.
ERROR: certificate common name "www.python.org" doesn't match requested host name "pypi.python.org".
To connect to pypi.python.org insecurely, use '--no-check-certificate'.
ca-certificates
пакете. Этот пакет установлен? Может быть, попробуйте переустановить его. Если это не проблема, запуститеstrace -o /tmp/wget.strace wget https://www.python.org
и опубликуйте полученную трассировку, которая должна сообщить нам, где проблема.Ответы:
Проблема заключается в отсутствии поддержки для индикации имени сервера. Вам нужен как минимум wget 1.14 или curl 7.18.1 и вам нужен как минимум OpenSSL 0.98f, согласно Википедии:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
источник
У меня была похожая ошибка с https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz на образе докера (circleci / jdk8: 0.1. 1),
В моем случае обновление CA-сертификатов решило проблему:
источник
wget
до 1.14 не поддерживает альтернативное имя субъекта (SAN) *. PyPI использует SAN в качестве альтернативы своему CN в своем сертификате, а wget задыхается от несоответствия. Обновление wget должно разрешить это.* или, возможно, указание имени сервера (SNI) - я не уверен, что здесь применимо.
Ссылки:
источник
Решение 1:
Получите ключ сертификата и скопируйте в
/etc/ssl/certs
.Если вы хотите пойти небезопасным путем, попробуйте решение 2
Решение 2:
$ wget https://www.python.org --no-check-certificate
или используя
Curl
источник
Обновите время на сервере. Одна секунда может вызвать эту проблему!
Проверить с:
date
Redhat / CentOS 6/7
yum -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org
Ubuntu / Debian
apt-get -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org
источник
echo "check_certificate = off" >> ~ / .wgetrc
источник
wget
команды, и это не решение, а обходной путь.