Je ne peux pas ouvrir d'URL https à l'aide de wget ou 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.
Cela utilise wget 1.12 et curl 7.30.0 sur CentOS 5.5. Il semble que quelque chose ne va pas avec mon magasin de certificats local, mais je ne sais pas comment procéder à partir d'ici. Des idées?
Mise à jour: après la mise à niveau du paquet openssl de 0.9.8e-12.el5_4.6 à 0.9.8e-33.el5_11, il y a maintenant une erreur différente:
$ 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
package. Ce package est-il installé? Essayez peut-être de le réinstaller. Si ce n'est pas le problème, exécutezstrace -o /tmp/wget.strace wget https://www.python.org
et publiez la trace résultante, cela devrait nous dire où est le problème.Réponses:
Le problème est le manque de prise en charge de l'indication de nom de serveur. Vous avez besoin d'au moins wget 1.14 ou curl 7.18.1 et vous avez besoin d'au moins OpenSSL 0.98f, selon Wikipedia:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
la source
J'avais une erreur similaire avec https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz sur une image Docker (circleci / jdk8: 0.1. 1),
Dans mon cas, la mise à niveau des certificats CA a résolu le problème:
la source
wget
avant 1.14 ne prend pas en charge le nom alternatif du sujet (SAN) *. PyPI utilise un SAN comme alternative à son CN dans son certificat, et wget s'étouffe sur l'inadéquation. La mise à niveau de wget devrait le résoudre.* ou éventuellement indication de nom de serveur (SNI) - je ne sais pas ce qui s'applique ici.
Les références:
la source
Solution 1:
Obtenez la clé de certificat et copiez-la
/etc/ssl/certs
.Si vous voulez aller de manière non sécurisée, essayez la solution 2
Solution 2:
$ wget https://www.python.org --no-check-certificate
ou en utilisant
Curl
la source
Mettez à jour l'heure sur le serveur. Une seconde peut provoquer ce problème!
Vérifier avec:
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
la source
echo "check_certificate = off" >> ~ / .wgetrc
la source
wget
commande et ce n'est pas une solution mais une solution de contournement.