İhraççının yetkisi yerel olarak doğrulanamıyor


19

Wget veya curl kullanarak herhangi bir https URL'lerini açamıyorum:

$ 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.

Bu, CentOS 5.5 üzerinde wget 1.12 ve curl 7.30.0 kullanıyor. Yerel sertifika deposumda bir sorun var gibi görünüyor, ancak buradan nasıl devam edeceğim konusunda hiçbir fikrim yok. Herhangi bir fikir?

Güncelleme: openssl paketini 0.9.8e-12.el5_4.6'dan 0.9.8e-33.el5_11'e yükselttikten sonra artık farklı bir hata var:

$ 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'.

Kök sertifikaların ca-certificatespakette olduğunu düşünüyorum . Bu paket kurulu mu? Belki yeniden yüklemeyi deneyin. Sorun bu değilse, strace -o /tmp/wget.strace wget https://www.python.orgortaya çıkan izlemeyi çalıştırın ve gönderin, bu bize sorunun nerede olduğunu söylemelidir.
Gilles 'SO- kötü olmayı kes'

@Gilles - openssl paketini 0.9.8e-12.el5_4.6'dan 0.9.8e-33.el5_11'e yükselttim ve hata gitti (belki de bu kök sertifikaları yeniden yükledi?), Ancak şimdi farklı bir hata var.
aco

Bu, söz konusu siteyle ilgili geçici bir hataya benziyor. Diğer siteler çalışıyor mu?
Gilles 'SO- kötü olmayı bırak'

@Gilles - Diğer web siteleri de çalışmıyor. Örneğin, Google şu hatayı döndürür: sertifika ortak adı "google.com" istenen ana bilgisayar adıyla "www.google.com.au" eşleşmiyor.
aco

Selinux'u devre dışı bırakırken aynı sorunu çözebilirim: crypt.gen.nz/selinux/disable_selinux.html Şerefe!

Yanıtlar:




2

Çözüm 1:

openssl s_client -connect whateversite.com:443 -debug 

Sertifika anahtarını alın ve kopyalayın /etc/ssl/certs.

$ wget https://www.python.org --ca-certificate=/etc/ssl/certsfile

Güvensiz bir şekilde gitmek istiyorsanız çözümü deneyin 2

Çözüm 2:

$ wget https://www.python.org --no-check-certificate

veya Kullanma Curl

$ curl https://www.python.org --insecure

9
“Doktor, sol bacağımda yürüyemiyorum. - Çözüm 1: İhtiyacınız olanı sandalyenize yaklaştırın, böylece ayakta durmanıza gerek yok. Çözüm 2: atlama. ”Hayır, çözüm sorunu iyileştirmektir. Burada kök CA sertifikalarının onarılması veya yeniden yüklenmesi anlamına gelir.
Gilles 'SO- kötü olmayı kes'

4
Bu sadece kendi imzasını
taşıyan

1
Evet, bu kötü bir fikir. Çözüm 1 güvensiz çok . Tek yaptığınız bu noktadan itibaren sertifikaya otomatik olarak güvenerek wget'in denetimini atlamaktır. Aslında, wget'in erişebileceği kök sertifikaları düzelterek altta yatan sorunu düzeltiyor olmalısınız.
Andrew Ferrier

Bu, yalnızca sistem yöneticileriniz sizi kök kök sertifika listeleri veya acımasız güvenlik ayarlarını kullanmaya zorlarsa bir çözüm olsa da, nefreti hak etmiyor.
nurettin

2

wget1.14'ten önce Konu Alternatif Adı (SAN) * özelliğini desteklemez. PyPI, sertifikasında CN'sine alternatif olarak bir SAN kullanır ve wget uyumsuzluğunu boğar. Yükseltme aracı bunu çözmelidir.

* veya muhtemelen Sunucu Adı Göstergesi (SNI) - Burada geçerli olandan emin değilim.

Referanslar:


0

Sunucudaki saati güncelleyin. Bir saniye bu soruna neden olabilir!

Şununla kontrol et: 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


0

echo "check_certificate = off" >> ~ / .wgetrc


1
Bunu önermek oldukça tehlikelidir.
ploth

Bu sadece wgetkomutla ilgilidir ve çözüm değil geçici çözümdür.
mrc02_kr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.