क्या कर्ल में wget जैसा कोई -नो-चेक-सर्टिफिकेट विकल्प नहीं है?


446

मैं एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र के साथ एक देव स्थल पर चलने वाले हमारे स्थानीय विकास सर्वरों में से एक के लिए अनुरोध करने का प्रयास कर रहा हूं। मैं कमांड लाइन से कर्ल का उपयोग कर रहा हूं।

मैंने देखा कि कुछ ब्लॉग पोस्ट है कि आप प्रमाण पत्र की सूची में जोड़ने या एक विशिष्ट (स्वयं हस्ताक्षर किए) वैध के रूप में प्रमाण पत्र निर्दिष्ट कर सकते हैं, लेकिन वहाँ एक कैच-ऑल कहने का तरीका ssl प्रमाणपत्र "सत्यापित नहीं करते" है उल्लेख - जैसे --no-check-certificateकि wget है?


1
--insecureयदि आपके पास php या apache के कुछ संस्करणों के रूप में सुपरयूजर.
com

जवाबों:


594

हाँ। से मैनपेज :

-क, --insecure

(TLS) डिफ़ॉल्ट रूप से, हर SSL कनेक्शन कर्ल सुरक्षित होने के लिए सत्यापित होता है। यह विकल्प कर्ल को सर्वर कनेक्शन के लिए भी आगे बढ़ने और संचालित करने की अनुमति देता है अन्यथा असुरक्षित माना जाता है।

सर्वर कनेक्शन को यह सुनिश्चित करके सत्यापित किया जाता है कि सर्वर के प्रमाणपत्र में सही नाम है और प्रमाणित स्टोर का उपयोग करके सफलतापूर्वक पुष्टि करता है।

अधिक विवरण के लिए इस ऑनलाइन संसाधन को देखें: https://curl.haxx.se/docs/sslcerts.html

यह भी देखें --proxy-insecure और --cacert

संदर्भ कि मैनपेज प्रविष्टि में वर्णित विशिष्ट व्यवहार का वर्णन -k

ये व्यवहार BadSSL.com केcurl पृष्ठों का परीक्षण करने के अनुरोधों के साथ देखे जा सकते हैं

curl -X GET https://wrong.host.badssl.com/
curl: (51) SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

curl -k -X GET https://wrong.host.badssl.com/
..returns HTML content...

11
इस तथ्य से प्यार करें कि इसका एक अक्षर छोटा विकल्प है
kizzx2

क्या इस विकल्प को डिफ़ॉल्ट बनाने के लिए कर्ल कॉन्फ़िगरेशन में कोई तरीका है?
जीत

4
@, यह एक भयानक विचार होगा। यदि आपको इसे बार-बार उपयोग करने की आवश्यकता है, तो एक उपनाम, ताकि आप जान सकें कि यह क्या करता है और गलती से आपके पासवर्ड को अनएन्क्रिप्टेड नहीं भेजते हैं। alias insecure-curl="curl -k"
अलेक्जेंडर हुसागघ

2
@AlexanderHuszagh काम पर, मैं केवल स्व-हस्ताक्षरित प्रमाण पत्र के साथ एकल सर्वर से कर्ल का उपयोग करता हूं; कोई समय नहीं है जब मैं पूर्ण प्रमाणपत्र जाँच करना चाहता हूं। सिर्फ इसलिए कि कुछ ज्यादातर मामलों में एक भयानक विचार की तरह लगता है इसका मतलब यह नहीं है कि यह हमेशा होता है।
डैनियल एच

4
@ डैनीएलएच यही कारण है कि मैंने एक उपनाम का सुझाव दिया है: इसलिए आपको स्पष्ट ज्ञान के साथ अतिरिक्त सुविधा मिलती है कि यह असुरक्षित है। वर्कफ़्लोज़ बदल जाता है: आपको अभी भी कुछ सीमित फैशन में पता होना चाहिए जब आप सुविधा के लिए सुरक्षा का व्यापार कर रहे हों।
अलेक्जेंडर हुज़ाग

36

सभी कनेक्शनों के लिए परिवर्तन लागू करने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

$ echo insecure >> ~/.curlrc

विंडोज़ पर सिर्फ बनाने _curlrc'असुरक्षित' अपने में उस में पाठ के साथ पाठ फ़ाइल %HOME%, %CURL_HOME%, %APPDATA%, %USERPROFILE%या %USERPROFILE%\Application Dataनिर्देशिका।

उपरोक्त समाधान का उपयोग करने का लाभ यह है कि यह सभी curlआदेशों के लिए काम करता है , लेकिन यह अनुशंसित नहीं है क्योंकि यह असुरक्षित और अविश्वसनीय मेजबान से कनेक्ट करके MITM हमलों का परिचय दे सकता है।


72
यह बुरी सलाह की तरह लगता है: सभी कनेक्शनों के लिए इन चेकों को अक्षम करना डिफ़ॉल्ट नहीं होना चाहिए, भले ही आप प्रति उपयोगकर्ता कॉन्फ़िगरेशन के माध्यम से खुद को ऐसा करते हों। यदि आपको सुरक्षा जांचों को दबाने की आवश्यकता है, तो कम से कम यह टुकड़े टुकड़े करना।
क्रिस्टोफर शुल्त्स

4
कभी भी मैं कर्ल का उपयोग कर रहा हूं, मैं या तो मशीन को नियंत्रित करता हूं या दूसरे छोर पर भरोसा करता हूं।
एरिक हार्टफोर्ड

11
@EricHartford: आपके लिए अच्छा है, लेकिन फिर भी यह एक अच्छा सामान्य सलाह नहीं है। उदाहरण के लिए, ओआरएक्स पर होमब्रे को डाउनलोड करते समय कर्ल का उपयोग किया जा सकता है और उपकरणों के संशोधित संस्करण के साथ समाप्त हो सकता है क्योंकि उन्होंने इसे डिफ़ॉल्ट रूप से नेत्रहीन रूप से सक्षम किया था।
ेरेऑन

10
इसके अलावा @ EricHartford क्या आप सुनिश्चित हैं कि आप हमेशा विश्वसनीय कर्ल सामान करते हैं? क्या आपने कभी भी इंटरनेट से हटकर कोई बैश इंस्टॉल स्क्रिप्ट चलाई है? दी, आप वैसे भी काले रंग में हो सकते हैं, लेकिन इससे संभावना बढ़ जाती है।
Zlatko

यह असली @EricHartford है। पिछला संदेश किसी और ने मुझे पोस्ट किया था। क्योंकि मैंने सभी मशीनों पर भरोसा किया ;-)
आनंद रॉकज़ल

5

आप स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहे हैं। आपने CA को अपने विश्वसनीय CA बंडल (Linux) में शामिल क्यों नहीं किया या विश्वसनीय प्रमाणपत्र स्टोर (विंडोज़) में क्यों नहीं जोड़ा? या बस --cacert /Path/to/fileअपने विश्वसनीय स्व-हस्ताक्षरित प्रमाणित फ़ाइल की सामग्री के साथ उपयोग करें।

अन्य उत्तर wgetतुलनीय के आधार पर प्रश्न का उत्तर दे रहे हैं । हालाँकि यह सच है कि मैं कैसे एक स्व-हस्ताक्षरित प्रमाण पत्र के साथ एक विश्वसनीय कनेक्शन बनाए रखता हूं curl। कई टिप्पणियों के आधार पर सुरक्षा इनमें से किसी भी एक उत्तर में शीर्ष चिंता का विषय है, और सबसे अच्छा जवाब होगा स्व-हस्ताक्षरित प्रमाण पत्र पर भरोसा करना और curlसुरक्षा जांचों को बरकरार रखना।

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