Nie mogę otworzyć żadnych adresów URL https za pomocą wget lub 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.
Korzysta z wget 1.12 i curl 7.30.0 na CentOS 5.5. Wygląda na to, że coś jest nie tak z moim lokalnym magazynem certyfikatów, ale nie mam pojęcia, jak to zrobić. Jakieś pomysły?
Aktualizacja: Po zaktualizowaniu pakietu openssl z wersji 0.9.8e-12.el5_4.6 do 0.9.8e-33.el5_11 występuje teraz inny błąd:
$ 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'.
centos
ssl
certificates
aco
źródło
źródło
ca-certificates
pakiecie. Czy ten pakiet jest zainstalowany? Może spróbuj go ponownie zainstalować. Jeśli to nie jest problem, uruchomstrace -o /tmp/wget.strace wget https://www.python.org
i opublikuj wynikowy ślad, który powinien nam powiedzieć, gdzie jest problem.Odpowiedzi:
Problemem jest brak obsługi wskazania nazwy serwera. Potrzebujesz co najmniej wget 1.14 lub curl 7.18.1 i potrzebujesz co najmniej OpenSSL 0.98f, zgodnie z Wikipedią:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
źródło
Miałem podobny błąd z https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz na obrazie dokera (circleci / jdk8: 0.1. 1),
W moim przypadku aktualizacja certyfikatów ca rozwiązała problem:
źródło
wget
przed wersją 1.14 nie obsługuje alternatywnej nazwy podmiotu (SAN) *. PyPI używa SAN jako alternatywy dla swojej CN w swoim certyfikacie, a wget dusi się z powodu niezgodności. Uaktualnienie wget powinno go rozwiązać.* lub ewentualnie Wskazanie nazwy serwera (SNI) - nie jestem pewien, co dotyczy tutaj.
Bibliografia:
źródło
Rozwiązanie 1:
Uzyskaj klucz certyfikatu i skopiuj do
/etc/ssl/certs
.Jeśli chcesz przejść w niepewny sposób, wypróbuj rozwiązanie 2
Rozwiązanie 2:
$ wget https://www.python.org --no-check-certificate
lub Korzystanie
Curl
źródło
Zaktualizuj czas na serwerze. Jedna sekunda może spowodować ten problem!
Sprawdź z:
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
źródło
echo "check_certificate = off" >> ~ / .wgetrc
źródło
wget
polecenia i nie jest rozwiązaniem, ale obejściem.