No puedo abrir ninguna URL https usando wget o 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.
Esto está usando wget 1.12 y curl 7.30.0 en CentOS 5.5. Parece que algo está mal con mi tienda de certificados local, pero no tengo idea de cómo proceder desde aquí. ¿Algunas ideas?
Actualización: después de actualizar el paquete openssl de 0.9.8e-12.el5_4.6 a 0.9.8e-33.el5_11, ahora hay un error diferente:
$ 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
fuente
fuente
ca-certificates
paquete. ¿Está instalado este paquete? Tal vez intente reinstalarlo. Si ese no es el problema, ejecutestrace -o /tmp/wget.strace wget https://www.python.org
y publique el seguimiento resultante, eso debería decirnos dónde está el problema.Respuestas:
El problema es la falta de soporte para la Indicación del nombre del servidor. Necesita al menos wget 1.14 o curl 7.18.1 y necesita al menos OpenSSL 0.98f, según Wikipedia:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
fuente
Estaba teniendo un error similar con https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz en una imagen acoplable (circleci / jdk8: 0.1. 1),
En mi caso, la actualización de los certificados ca resolvió el problema:
fuente
wget
anterior a 1.14 no admite Nombre alternativo del sujeto (SAN) *. PyPI utiliza una SAN como alternativa a su CN en su certificado, y wget se está ahogando con la falta de coincidencia. La actualización de wget debería resolverlo.* o posiblemente Indicación del nombre del servidor (SNI): no estoy seguro de qué se aplica aquí.
Referencias
fuente
Solución 1:
Obtenga la clave del certificado y cópiela en
/etc/ssl/certs
.Si quieres ir de forma insegura, prueba la solución 2
Solución 2:
$ wget https://www.python.org --no-check-certificate
o usando
Curl
fuente
Actualiza la hora en el servidor. ¡Un segundo puede causar este problema!
Comprobar con:
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
fuente
echo "check_certificate = off" >> ~ / .wgetrc
fuente
wget
comando y no es la solución sino la solución.