संसाधन लोड करने में विफल: शुद्ध :: ERR_INSECURE_RESPONSE


206

सर्वर पर छल करने का एक तरीका है इसलिए मुझे यह त्रुटि नहीं मिलती है:

सामग्री को अवरुद्ध कर दिया गया था क्योंकि यह एक वैध सुरक्षा प्रमाणपत्र द्वारा हस्ताक्षरित नहीं था।

मैं एक html वेबसाइट के एक iframe को दूसरी वेबसाइट में खींच रहा हूं, लेकिन मुझे इस प्रश्न के शीर्षक और इंटरनेट एक्सप्लोरर में कंसोल (क्रोम) त्रुटि मिलती रहती है:

सामग्री को अवरुद्ध कर दिया गया था क्योंकि यह एक वैध सुरक्षा प्रमाणपत्र द्वारा हस्ताक्षरित नहीं था।


ऐसा लगता है कि आप सुरक्षित संसाधनों से असुरक्षित संसाधन तक पहुंचने की कोशिश कर रहे हैं। मेरा मानना ​​है कि उन्हें यहां भी इसी तरह की समस्या है
डेरेक

जवाबों:


301

आपका संसाधन संभवतः HTTPS प्रोटोकॉल पर एक स्व-हस्ताक्षरित SSL प्रमाणपत्र का उपयोग करता है। क्रोमियम, इसलिए Google Chrome डिफ़ॉल्ट रूप से इस प्रकार के संसाधन को असुरक्षित मानता है।

आप इसे इस तरह से बायपास कर सकते हैं:

  • मान लें कि आपका फ़्रेम URL है https://www.domain.com, क्रोम में एक नया टैब खोलें और जाएं https://www.domain.com
  • Chrome आपको SSL प्रमाणपत्र स्वीकार करने के लिए कहेगा। स्वीकार करें।
  • फिर, यदि आप अपने पृष्ठ को अपने फ्रेम के साथ पुनः लोड करते हैं, तो आप देख सकते हैं कि अब यह काम करता है

जैसा कि आप अनुमान लगा सकते हैं, समस्या यह है कि आपकी वेबसाइट के प्रत्येक आगंतुक को आपके फ्रेम तक पहुंचने के लिए यह कार्य करना होगा।

आप देख सकते हैं कि क्रोम आपके नेविगेशन सत्र के लिए आपके URL को ब्लॉक कर देगा, जबकि क्रोम हमेशा के लिए याद रख सकता है कि आप इस डोमेन पर भरोसा करते हैं।

यदि आपका फ्रेम HTTPS के बजाय HTTP द्वारा एक्सेस किया जा सकता है, तो मैं आपको इसका उपयोग करने का सुझाव देता हूं, इसलिए यह समस्या हल हो जाएगी।


1
मुझे लगता है कि जब आप दूसरे टैब को खोलते हैं, तो आपको https://domain.comएसएसएल प्रमाणपत्र को स्वीकार करने की आवश्यकता होती है ।
होजेफा

2
@ RémiBecheras, Chrome को कई नेविगेशन सत्रों पर प्रमाणपत्र पर भरोसा करने के लिए याद रखने का कोई तरीका है?
फेलिक्स

3
इस तरह के नियम को जोड़ने के लिए, आपको प्रमाण पत्र प्राप्त करना होगा। यदि यह आपका है, तो आपके पास पहले से ही है। यदि नहीं, तो adressbar> प्रमाणपत्र सूचना> विवरण> निर्यात पर https बायाँ आइकन पर क्लिक करें। फिर, इस फाइल का उपयोग करें
Rémi Becheras

1
इसने उस अजीब मामले के लिए भी काम किया जहां एक साइट उसी डोमेन (स्वयं) के लिए एक अनुरोध भेज रही थी जिसे मैंने स्व-हस्ताक्षरित प्रमाण पत्र के साथ जारी रखने की स्वीकृति दी थी, लेकिन तब क्रोम इस त्रुटि को फेंक रहा था।
माइकल

1
क्या क्लाइंट साइड कोड के माध्यम से इस तरह का बाईपास करने का कोई तरीका है? मतलब, क्या मैं क्लाइंट में प्रोग्राम कर सकता हूं "अरे यह सर्वर जिसे आप एक्सेस करने की कोशिश कर रहे हैं वह स्केच लग रहा है, लेकिन इसका ठीक भरोसा है। मैंने आप दोनों को लिखा है, आप तकनीकी रूप से भाई / बहन / लिंग तटस्थ भाई बहन हैं"?
डिस्कोडेन

33

कभी-कभी Google Chrome इस त्रुटि को फेंक देता है, भले ही यह नहीं करना चाहिए। मैंने इसका अनुभव किया जब क्रोम का नया संस्करण था, और इसे पुनः आरंभ करने की आवश्यकता थी। एक ही पृष्ठ को पुनः आरंभ करने के बाद बिना किसी त्रुटि के काम किया। कंसोल में त्रुटि थी:

net::ERR_INSECURE_RESPONSE

7
पुष्टि की गई, Chrome का पुनः आरंभ (और सभी पृष्ठभूमि Chrome प्रक्रियाओं को मारते हुए) इसे मेरे लिए निर्धारित किया गया।
ओरान डेनिसन

5
काम नहीं करता है .. इसका एक स्व-हस्ताक्षरित प्रमाण पत्र .. यह पुनः आरंभ करने से काम नहीं करेगा
user1735921

1
मेरे साथ भी पुष्टि की!
नीमके

@ बालाज़, क्या ब्राउज़र को फिर से शुरू करना एकमात्र तरीका है? यह मानते हुए कि हम पुनः आरंभ करने का जोखिम नहीं उठा सकते, क्या इसके माध्यम से करने का कोई तरीका है chrome://net-internals?
पचेरियर

1
Chrome की पुनः आरंभ (पृष्ठभूमि प्रक्रियाओं के बिना) ने मेरे लिए भी इसे निर्धारित किया। धन्यवाद!
एनोक्रॉनॉल - आनंदगोपाल परदेशू

8

मैंने अभी भी दोनों (अप टू डेट) एज और क्रोम ब्राउज़र के लिए एक Asus टी 100 विंडोज 10 टेस्ट डिवाइस पर ऊपर वर्णित समस्या का अनुभव किया।

समाधान डिवाइस की तारीख / समय सेटिंग्स में था ; किसी तरह तारीख को सही ढंग से सेट नहीं किया गया था (अतीत में तारीख)। सही तिथि निर्धारित करके इसे पुनर्स्थापित करना (और ब्राउज़रों को फिर से शुरू करना) मेरे लिए समस्या को हल करता है। मुझे आशा है कि मैं किसी को इस समस्या को डीबग करने से बचाऊंगा।


मैं विंडोज 8 पर चलने वाले एक असूस ज़ेनबुक पर एक समान त्रुटि का सामना कर रहा हूं। दुर्भाग्य से, यह मेरे लिए काम नहीं किया लेकिन क्या आप अधिक विस्तार से बता सकते हैं कि आप दिनांक / समय को कैसे रीसेट करते हैं? बस विंडोज़ ui के माध्यम से समय क्षेत्र निर्धारित करके?
इनके

@DEls, मैंने विंडोज कॉन्फ़िगरेशन में टाइमज़ोन स्विच किया - जो मेरे लिए सिस्टम घड़ी को रीसेट करता है। क्या आपने बाद में ब्राउज़र को पुनः आरंभ किया? यदि समय ने इस समस्या को हल नहीं किया तो आपको इस विषय में वर्णित दूसरे समाधान पर गौर करना पड़ सकता है।
सेबेस्टियन ऑर्डेलमैन

मुझे पता नहीं क्यों, लेकिन यह मेरे लिए काम किया। वर्ष 2048 के लिए निर्धारित किया गया था, इसे वर्तमान वर्ष में बदल दिया गया और सभी तय हो गए। धन्यवाद @SebastiaanOrdelman
deanwilliammills

6

अपना कंसोल खोलें और URL को अंदर से हिट करें। यह आपको API पृष्ठ पर ले जाएगा और फिर पृष्ठ में SSL प्रमाणपत्र स्वीकार करेगा, अपने ऐप पृष्ठ पर वापस जाएं और पुनः लोड करें। याद रखें कि एसएसएल प्रमाणपत्र आपके देव पर्यावरण के लिए पहले जारी किए जाने चाहिए थे।


4

यदि आप विकसित कर रहे हैं, और आप विंडोज मशीन के साथ विकसित कर रहे हैं, तो बस localhost एक विश्वसनीय साइट के रूप में जोड़ें ।

और हाँ, DarrylGriffiths की टिप्पणी के अनुसार, हालाँकि ऐसा लग सकता है कि आप Internet Explorer सेटिंग जोड़ रहे हैं ...

मेरा मानना ​​है कि वे IE सेटिंग्स के बजाय विंडोज हैं। यद्यपि एमएस यह मान लेता है कि वे केवल IE हैं (इसलिए "सक्षम मोड को सक्षम करें" के बगल में चेतावनी है कि यह IE पुनः आरंभ की गई है) ...


4
मैं लिनक्स ubuntu का उपयोग कर रहा हूँ, विंडोज़ नहीं, कोई समाधान?
user1735921 6

4

इस त्रुटि का एक और संभावित समाधान प्रस्तुत करना।

यदि आपके पास एक फ्रंटएंड एप्लिकेशन है जो बैकएंड पर एपीआई कॉल करता है, तो सुनिश्चित करें कि आप उस डोमेन नाम का संदर्भ दें जिसे प्रमाण पत्र जारी किया गया है।

जैसे

https://example.com/api/etc

और नहीं

https://123.4.5.6/api/etc

मेरे मामले में, मैं एक प्रमाणपत्र के साथ सुरक्षित सर्वर पर एपीआई कॉल कर रहा था, लेकिन डोमेन नाम के बजाय आईपी का उपयोग कर रहा था। यह एक फेंक दिया Failed to load resource: net::ERR_INSECURE_RESPONSE


0

इस कोड को देखने के लिए प्रयास करें, और रिपोर्ट करें, एक संभव net::ERR_INSECURE_RESPONSE

मैं इस मुद्दे के साथ ही एक स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग कर रहा था, जिसे मैंने क्रोम सेटिंग्स में सहेजने के लिए नहीं चुना है। Https डोमेन तक पहुँचने और प्रमाणपत्र को स्वीकार करने के बाद, ajax कॉल ठीक काम करता है। लेकिन एक बार उस स्वीकृति को समय से पहले या इससे पहले स्वीकार कर लिया गया है, jQuery.ajax()कॉल चुपचाप विफल रहता है: timeoutपैरामीटर मदद नहीं करता है और error()फ़ंक्शन को कभी भी कॉल नहीं किया जाता है।

जैसे, मेरा कोड कभी भी कॉल success()या error()कॉल नहीं करता है और इसलिए हैंग हो जाता है। मेरा मानना ​​है कि यह इस त्रुटि से जूरी की हैंडलिंग में एक बग है। मेरा समाधान error()निर्दिष्ट टाइमआउट के बाद कॉल को बाध्य करना है ।

यह कोड फॉर्म के एक jquery ajax कॉल को मान लेता है jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})

नोट: आप संभवतः setTimeoutकॉल करने के बजाय अपने UI के साथ सर्वश्रेष्ठ को एकीकृत करने के लिए फ़ंक्शन को बदलना चाहेंगे alert()

const MS_FOR_HTTPS_FAILURE = 5000;
$.orig_ajax = $.ajax;
$.ajax = function(params)
{
  var complete = false;
  var success = params.success;
  var error = params.error;
  params.success = function() {
    if(!complete) {
      complete = true;
      if(success) success.apply(this,arguments);
    }
  }
  params.error = function() {
    if(!complete) {
      complete = true;
      if(error) error.apply(this,arguments);
    }
  }
  setTimeout(function() {
    if(!complete) {
      complete = true;
      alert("Please ensure your self-signed HTTPS certificate has been accepted. "
        + params.url);
      if(params.error)
        params.error( {},
          "Connection failure",
          "Timed out while waiting to connect to remote resource. " +
          "Possibly could not authenticate HTTPS certificate." );
    }
  }, MS_FOR_HTTPS_FAILURE);

  $.orig_ajax(params);
}

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