Ich kann keine https-URLs mit wget oder curl öffnen:
$ 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.
Dies verwendet wget 1.12 und curl 7.30.0 unter CentOS 5.5. Es hört sich so an, als ob etwas mit meinem lokalen Zertifikatspeicher nicht stimmt, aber ich habe keine Ahnung, wie ich fortfahren soll. Irgendwelche Ideen?
Update: Nach dem Upgrade des openssl-Pakets von 0.9.8e-12.el5_4.6 auf 0.9.8e-33.el5_11 tritt jetzt ein anderer Fehler auf:
$ 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
akust
quelle
quelle
ca-certificates
Paket enthalten. Ist dieses Paket installiert? Vielleicht versuchen Sie es erneut zu installieren. Wenn dies nicht das Problem ist, führen Siestrace -o /tmp/wget.strace wget https://www.python.org
den resultierenden Trace aus und veröffentlichen Sie ihn. Dies sollte uns mitteilen, wo das Problem liegt.Antworten:
Das Problem ist die mangelnde Unterstützung für die Angabe des Servernamens. Du brauchst mindestens wget 1.14 oder curl 7.18.1 und du brauchst mindestens OpenSSL 0.98f, laut Wikipedia:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
quelle
Ich hatte einen ähnlichen Fehler mit https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz auf einem Docker-Image (circleci / jdk8: 0.1. 1),
In meinem Fall löste ein Upgrade von CA-Zertifikaten das Problem:
quelle
wget
vor 1.14 unterstützt den alternativen Antragstellernamen (Subject Alternative Name, SAN) * nicht. PyPI verwendet ein SAN als Alternative zu seinem CN in seinem Zertifikat, und wget verschluckt sich an der Nichtübereinstimmung. Ein Upgrade von wget sollte das Problem beheben.* oder möglicherweise Server Name Indication (SNI) - Ich bin nicht sicher, welche hier gilt.
Verweise:
quelle
Lösung 1:
Holen Sie sich den Zertifikatsschlüssel und kopieren Sie ihn nach
/etc/ssl/certs
.Wenn Sie unsicher werden möchten, versuchen Sie es mit der Lösung 2
Lösung 2:
$ wget https://www.python.org --no-check-certificate
oder mit
Curl
quelle
Aktualisieren Sie die Uhrzeit auf dem Server. Eine Sekunde kann dieses Problem verursachen!
Erkundigen Sie sich bei:
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
quelle
echo "check_certificate = off" >> ~ / .wgetrc
quelle
wget
Befehle und ist keine Lösung, sondern eine Problemumgehung.