Não consigo abrir nenhum URL https usando 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.
Isso está usando o wget 1.12 e curl 7.30.0 no CentOS 5.5. Parece que algo está errado com meu repositório de certificados local, mas não tenho idéia de como proceder a partir daqui. Alguma ideia?
Atualização: Após a atualização do pacote openssl de 0.9.8e-12.el5_4.6 para 0.9.8e-33.el5_11, agora existe um erro 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
fonte
fonte
ca-certificates
pacote. Este pacote está instalado? Talvez tente reinstalá-lo. Se esse não for o problema, executestrace -o /tmp/wget.strace wget https://www.python.org
e poste o rastreamento resultante, que deve nos dizer onde está o problema.Respostas:
O problema é a falta de suporte à indicação de nome do servidor. Você precisa de pelo menos wget 1.14 ou curl 7.18.1 e precisa de pelo menos OpenSSL 0.98f, de acordo com a Wikipedia:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
fonte
Eu estava tendo um erro semelhante com https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz em uma imagem do docker (circleci / jdk8: 0.1. 1)
No meu caso, a atualização de certificados CA resolveu o problema:
fonte
wget
anterior a 1.14 não suporta o nome alternativo do sujeito (SAN) *. O PyPI usa uma SAN como alternativa à sua CN em seu certificado, e o wget está sufocando com a incompatibilidade. A atualização do wget deve resolvê-lo.* ou, possivelmente, Server Name Indication (SNI) - não tenho certeza do que se aplica aqui.
Referências:
fonte
Solução 1:
Obtenha a chave do certificado e copie para
/etc/ssl/certs
.Se você quer ir de maneira insegura, tente a solução 2
Solução 2:
$ wget https://www.python.org --no-check-certificate
ou usando
Curl
fonte
Atualize a hora no servidor. Um segundo pode causar esse problema!
Verificar com:
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
fonte
eco "check_certificate = off" >> ~ / .wgetrc
fonte
wget
comando e não é solução, mas solução alternativa.