Saya tidak dapat membuka URL https apa pun menggunakan wget atau 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.
Ini menggunakan wget 1.12 dan menggulung 7.30.0 pada CentOS 5.5. Sepertinya ada yang salah dengan toko sertifikat lokal saya, tetapi saya tidak tahu bagaimana melanjutkan dari sini. Ada ide?
Pembaruan: Setelah memutakhirkan paket openssl dari 0.9.8e-12.el5_4.6 ke 0.9.8e-33.el5_11, sekarang ada kesalahan yang berbeda:
$ 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
sumber
sumber
ca-certificates
paket. Apakah paket ini diinstal? Mungkin coba instal ulang. Jika bukan itu masalahnya, jalankanstrace -o /tmp/wget.strace wget https://www.python.org
dan posting jejak yang dihasilkan, yang akan memberi tahu kami di mana masalahnya.Jawaban:
Masalahnya adalah kurangnya dukungan untuk Indikasi Nama Server. Anda memerlukan setidaknya wget 1.14 atau curl 7.18.1 dan Anda memerlukan setidaknya OpenSSL 0.98f, menurut Wikipedia:
https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation
sumber
Saya mengalami kesalahan serupa dengan https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz pada gambar buruh pelabuhan (circleci / jdk8: 0.1. 1),
Dalam kasus saya, meningkatkan sertifikat-ca memecahkan masalah:
sumber
wget
sebelum 1.14 tidak mendukung Nama Alternatif Subjek (SAN) *. PyPI menggunakan SAN sebagai alternatif untuk CN-nya dalam sertifikatnya, dan wget tersedak ketidakcocokan. Upgrade wget harus menyelesaikannya.* atau mungkin Indikasi Nama Server (SNI) - Saya tidak yakin yang berlaku di sini.
Referensi:
sumber
Solusi 1:
Dapatkan kunci sertifikat dan salin ke
/etc/ssl/certs
.Jika Anda ingin pergi dengan cara tidak aman maka coba solusi 2
Solusi 2:
$ wget https://www.python.org --no-check-certificate
atau Menggunakan
Curl
sumber
Perbarui waktu di server. Satu detik dapat menyebabkan masalah ini!
Periksa dengan:
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
sumber
echo "check_certificate = off" >> ~ / .wgetrc
sumber
wget
perintah dan itu bukan solusi tetapi solusinya.