जारीकर्ता के प्राधिकरण को स्थानीय रूप से सत्यापित करने में असमर्थ


19

मैं wget या कर्ल का उपयोग करके कोई भी https URL खोलने में सक्षम नहीं हूं:

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

यह CentOS 5.5 पर wget 1.12 और curl 7.30.0 का उपयोग कर रहा है। ऐसा लगता है कि मेरे स्थानीय प्रमाणपत्र स्टोर में कुछ गड़बड़ है, लेकिन मुझे नहीं पता कि यहां से कैसे आगे बढ़ना है। कोई विचार?

अपडेट: 0.9.8e-12.el5_4.6 से 0.9.8e-33.el5_11 पर खुलने वाले पैकेज को अपग्रेड करने के बाद, अब एक अलग त्रुटि है:

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

मुझे लगता है कि मूल प्रमाण पत्र ca-certificatesपैकेज में हैं। क्या यह पैकेज स्थापित है? शायद इसे पुनः स्थापित करने का प्रयास करें। यदि यह समस्या नहीं है, strace -o /tmp/wget.strace wget https://www.python.orgतो परिणामी ट्रेस चलाएं और पोस्ट करें, जो हमें बताएं कि समस्या कहां है।
गाइल्स का SO- बुराई पर रोक '13

@ गिल्स - मैंने 0.9.8e-12.el5_4.6 से 0.9.8e-33.el5_11 तक के ओपनस्ले पैकेज को अपग्रेड किया और त्रुटि चली गई (शायद इसने रूट सर्टिफिकेट को फिर से स्थापित किया?), लेकिन अब एक अलग त्रुटि है।
aco

यह इस विशिष्ट साइट के साथ एक क्षणिक त्रुटि की तरह दिखता है। क्या अन्य साइटें काम करती हैं?
गिल्स एसओ- बुराई को रोकना '

@ गिल्स - अन्य वेबसाइटें भी काम नहीं करती हैं। उदाहरण के लिए, Google त्रुटि देता है: प्रमाणपत्र सामान्य नाम "google.com" अनुरोधित होस्ट नाम "www.google.com.au" से मेल नहीं खाता।
aco

मैं सेलिनक्स को अक्षम करने वाली एक ही समस्या को ठीक कर सकता था: crypt.gen.nz/selinux/disable_selinux.html चीयर्स!

जवाबों:


4

समस्या सर्वर नाम संकेत के लिए समर्थन की कमी है। आपको विकिपीडिया के अनुसार कम से कम 1.14 या कर्ल 7.18.1 की आवश्यकता है और आपको कम से कम ओपनएसएसएल 0.98 एफ की आवश्यकता है:

https://en.wikipedia.org/wiki/Server_Name_Indication#Implementation


1
मैं उपयोग कर रहा हूँ: GNU Wget 1.19.4 और OpenSSL 1.1.1 और मुझे अभी भी वही त्रुटि मिलती है।
mchid

4

मुझे डॉक छवि (सर्कल / jdk8: 0.1) पर https://excellmedia.dl.sourceforge.net/project/astyle/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz के साथ एक समान त्रुटि हो रही थी । 1),

मेरे मामले में सीए-सर्टिफिकेट अपग्रेड करने से समस्या हल हो गई:

sudo apt-get install ca-certificates

धन्यवाद! पूरी तरह से Ubuntu 16.04 पर काम किया। मुझे सीए-सर्टिफिकेट्स को पुनः स्थापित करना पड़ा
Ubuntuser

2

समाधान 1:

openssl s_client -connect whateversite.com:443 -debug 

प्रमाणपत्र कुंजी प्राप्त करें और कॉपी करें /etc/ssl/certs

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

यदि आप असुरक्षित तरीके से जाना चाहते हैं तो समाधान 2 का प्रयास करें

समाधान 2:

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

या उपयोग करना Curl

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

9
"डॉक्टर, मैं अपने बाएं पैर पर नहीं चल सकता। - समाधान 1: आपको अपनी कुर्सी के करीब जाने की आवश्यकता है ताकि आपको खड़े होने की आवश्यकता न हो। समाधान 2: हॉप। ”नहीं, समाधान समस्या को ठीक करना है। जो, यहाँ, का अर्थ है रूट CA प्रमाणपत्र की मरम्मत या पुनर्स्थापना।
गाइल्स का SO- बुराई पर रोक '13

4
यह केवल स्व-हस्ताक्षरित स्व-जारी प्रमाण पत्रों के लिए अच्छा है
पावेल निदोबा

1
हां, यह एक बुरा विचार है। समाधान 1 असुरक्षित भी है । आप जो कुछ भी कर रहे हैं, वह इस बिंदु से प्रमाण पत्र पर स्वचालित रूप से भरोसा करके wget की जाँच को दरकिनार कर रहा है। आपको मूल समस्या को वास्तव में ठीक करके मूल प्रमाणपत्र को ठीक करना चाहिए, जिस पर wget की पहुंच है।
एंड्रयू फेरियर

हालाँकि यह केवल एक वर्कअराउंड है यदि आपके sysadmins आपको टूटी हुई रूट प्रमाणपत्र सूची या ड्रैकनियन सुरक्षा सेटिंग्स का उपयोग करने के लिए मजबूर करते हैं, तो यह नफरत के लायक नहीं है।
नुरेटिन

2

wget1.14 से पहले विषय वैकल्पिक नाम (SAN) * का समर्थन नहीं करता है। PyPI अपने प्रमाणपत्र में CN के विकल्प के रूप में एक SAN का उपयोग करता है, और wism बेमेल पर घुट रहा है। अपग्रेडिंग वेज को हल करना चाहिए।

* या संभवतः सर्वर नाम संकेत (एसएनआई) - मुझे यकीन नहीं है जो यहां लागू होता है।

संदर्भ:


0

सर्वर पर समय का अद्यतन करें। एक सेकंड इस मुद्दे का कारण बन सकता है!

इससे जाँच करें: date

रेडहट / सेंटोस 6/7 yum -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org

Ubuntu / डेबियन apt-get -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org


0

इको "check_certificate = off" >> ~ / .wgetrc


1
यह सुझाव देना खतरनाक है।
प्लॉट

यह केवल wgetकमांड की चिंता करता है और इसका समाधान नहीं बल्कि समाधान है।
mrc02_kr
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.