Не вдалося завантажити ресурс: net :: ERR_INSECURE_RESPONSE


206

Чи є спосіб обманути сервер, щоб я не отримав цю помилку:

Вміст було заблоковано, оскільки він не був підписаний дійсним сертифікатом безпеки.

Я перетягую iframe веб-сайту html на інший веб-сайт, але я продовжую отримувати помилку консолі (chrome) в заголовку цього питання, а в Internet Explorer він говорить:

Вміст було заблоковано, оскільки він не був підписаний дійсним сертифікатом безпеки.


це здається, що ви намагаєтеся отримати доступ до незахищеного ресурсу із захищених ресурсів. Я вважаю, що вони мають подібну проблему і тут .
Дерек

Відповіді:


301

Ваш ресурс, ймовірно, використовує самопідписаний сертифікат SSL через протокол HTTPS. Chromium, тому Google Chrome блокує цей ресурс за замовчуванням як незахищений.

Ви можете його обійти таким чином:

  • Припустимо, що URL-адреса вашого кадру є https://www.domain.com, відкрийте нову вкладку в хромі та перейдіть до https://www.domain.com.
  • Chrome попросить прийняти сертифікат SSL. Прийняти це.
  • Потім, якщо ви перезавантажите сторінку рамкою, ви зможете побачити, що зараз вона працює

Як ви можете здогадатися, проблема полягає в тому, що кожен відвідувач вашого веб-сайту повинен виконати це завдання, щоб отримати доступ до вашого кадру.

Ви можете помітити, що хром буде блокувати вашу URL-адресу для кожного навігаційного сеансу, а хром назавжди запам'ятовує, що ви довіряєте цьому домену.

Якщо ваш кадр може отримати доступ через HTTP, а не HTTPS, я пропоную вам використовувати його, тому ця проблема буде вирішена.


1
Я думаю, що коли ви відкриєте іншу вкладку, вам потрібно перейти до https://domain.comі прийняти сервер SSL.
Хозефа

2
@ RémiBecheras, чи є спосіб змусити Chrome пам’ятати довіряти сертифікату протягом декількох сеансів навігації?
Фелікс

3
Для того, щоб додати таке правило, ви повинні отримати сертифікат. Якщо це ваше, у вас його вже є. Якщо цього немає, натисніть ліву піктограму https на адресної панелі> інформація про сертифікат> деталі> експорт. Потім скористайтеся цим файлом
Ремі Бехерас

1
Це також працювало для дивного випадку, коли сайт надсилав запит до того самого домену (сам), який я щойно схвалив, продовжуючи минулий підписаний сертифікат, але потім Chrome видав цю помилку.
Майкл

1
Чи є спосіб зробити такий обхід через код на стороні клієнта? Значить, чи можу я запрограмувати на клієнта: "Ей цей сервер, до якого ви намагаєтесь отримати доступ, виглядає схематично, але все гаразд мені довіряйте. Я написав вам обом. Ви технічно кодуєте брати / сестри / гендерно нейтральних братів і сестер"?
дискодан

33

Іноді Google Chrome викидає цю помилку, навіть якщо вона не повинна. Я відчував це, коли в Chrome була нова версія, і її потрібно було перезапустити. Після перезавантаження та сама сторінка працювала без помилок. Помилка консолі:

net::ERR_INSECURE_RESPONSE

7
Підтверджено, перезавантаження Chrome (і знищення всіх фонових процесів Chrome) вирішило це для мене.
Оран Деннісон

5
не працює .. його сертифікат із самопідписанням .. він не працюватиме, перезавантажившись
користувач1735921

1
Підтверджено і зі мною!
nemke

@Balazs, це єдиний спосіб перезапустити браузер? Якщо припустити, що ми не можемо дозволити собі перезапустити, чи є спосіб це зробити chrome://net-internals?
Pacerier

1
Перезапуск Chrome (без фонових процесів) вирішив це і для мене. Дякую!
EnocNRoll - AnandaGopal Pardue

8

Я все ще відчував проблему, описану вище, на тестовому пристрої Asus T100 Windows 10 для браузера Edge та Chrome.

Рішення було в налаштуваннях дати / часу пристрою ; якось дата не була встановлена ​​правильно (дата в минулому). Відновлення цього за допомогою встановлення правильної дати (та перезавантаження браузерів) вирішило проблему для мене. Я сподіваюся, що я врятую комусь головний біль, налагоджуючи цю проблему.


Я зіткнувся з подібною помилкою на asus zenbook під управлінням Windows 8. На жаль, це не спрацювало для мене, але чи можете ви пояснити більш детально, як ви скинули дату / час? Просто встановивши часовий пояс через інтерфейс Windows?
DEls

@DEls, я змінив часові пояси в конфігурації Windows - це скинуло системний годинник для мене. Ви перезавантажили браузер після цього? Якщо час не вирішив проблему, можливо, доведеться вивчити інше рішення, описане в цій темі.
Себастьян Ордельман

Не знаю чому, але це працювало для мене. Рік був встановлений на 2048 рік, змінив його на поточний рік і все виправлено. Дякуємо @SebastiaanOrdelman
deanwilliammills

6

відкрийте консоль і натисніть URL всередині. він перенесе вас на сторінку API, а потім на сторінці прийміть сертифікат SSL, поверніться на сторінку свого додатка та перезавантажте його. пам’ятайте, що сертифікати SSL раніше повинні були видаватися для вашого середовища Dev.


4

Якщо ви розвиваєтесь і працюєте на машині Windows, просто додайте її localhost як довірений сайт .

І так, за коментарем DarrylGriffiths, хоча це може виглядати так, що ви додаєте налаштування Internet Explorer ...

Я вважаю, що це Windows, а не IE. Хоча MS схильні вважати, що вони лише IE (звідси попередження поруч із "Увімкнути захищений режим", що він вимагає перезапустити IE) ...


4
Я використовую linux ubuntu, а не windows, будь-яке рішення?
користувач1735921

4

Пропонуючи ще одне потенційне рішення цієї помилки.

Якщо у вас є програма для інтерфейсів, яка здійснює дзвінки API до бекенда, переконайтесь, що ви посилаєтесь на доменне ім’я, на яке було видано сертифікат.

напр

https://example.com/api/etc

і ні

https://123.4.5.6/api/etc

У моєму випадку я робив дзвінки API на захищений сервер із сертифікатом, але використовував IP замість доменного імені. Це кинуло Failed to load resource: net::ERR_INSECURE_RESPONSE.


0

Спробуйте цей код, щоб переглянути та повідомити про можливе net::ERR_INSECURE_RESPONSE

У мене виникала ця проблема також, використовуючи сертифікат, який я підписав самостійно, який я не вирішив зберігати в налаштуваннях Chrome Після доступу до домену https та прийняття сертифіката, виклик ajax працює нормально. Але після того, як прийняття закінчилося або до його прийняття, jQuery.ajax()виклик виходить з ладу: timeoutпараметр не здається допомогою, і error()функція ніколи не викликається.

Як такий, мій код ніколи не отримує дзвінка success()або error()дзвінка, тому він висить. Я вважаю, що це помилка в обробці jquery цієї помилки. Моє рішення - змусити цеerror() дзвінок після заданого часу очікування.

Цей код передбачає виклик формату ajax jquery форми jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional}).

Примітка: Ви, швидше за все, захочете змінити функцію в межах, setTimeoutщоб найкраще інтегруватися з вашим інтерфейсом користувача: а не викликати дзвінки 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);
}

0

Ця проблема пов’язана з вашим https, що означає сертифікацію SSL. Спробуйте на Localhost.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.