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?
pdate: 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'.
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
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 de docker (circleci/jdk8: 0.1.1),
Dans mon cas, la mise à niveau des certificats CA a résolu le problème:
Sudo apt-get install ca-certificates
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 le décalage. 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.
Références:
Solution 1:
openssl s_client -connect whateversite.com:443 -debug
Obtenez la clé de certificat et copiez-la dans /etc/ssl/certs
.
$ wget https://www.python.org --ca-certificate=/etc/ssl/certsfile
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
$ curl https://www.python.org --insecure
echo "check_certificate = off" >> ~/.wgetrc
Mettez à jour l'heure sur le serveur. Une seconde peut provoquer ce problème!
Vérifiez 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