Gagal memuat sumber daya: net :: ERR_INSECURE_RESPONSE

206

ADA cara untuk menipu server sehingga saya tidak mendapatkan kesalahan ini:

Konten diblokir karena tidak ditandatangani oleh sertifikat keamanan yang valid.

Saya menarik iframe dari situs web html ke situs web lain, tetapi saya terus mendapatkan kesalahan konsol (chrome) dalam judul pertanyaan ini dan di internet explorer katanya:

Konten diblokir karena tidak ditandatangani oleh sertifikat keamanan yang valid.

pengguna3594437
sumber
sepertinya Anda mencoba mengakses sumber daya tidak aman dari sumber daya aman. Saya percaya mereka memiliki masalah serupa di sini .
Derek

Jawaban:

301

Sumber daya Anda mungkin menggunakan sertifikat SSL yang ditandatangani sendiri melalui protokol HTTPS. Chromium, jadi Google Chrome memblokir secara default sumber daya semacam ini dianggap tidak aman.

Anda dapat melewati ini dengan cara ini:

  • Dengan asumsi URL frame Anda https://www.domain.com, buka tab baru di chrome dan pergi ke https://www.domain.com.
  • Chrome akan meminta Anda untuk menerima sertifikat SSL. Terima itu.
  • Kemudian, jika Anda memuat ulang halaman Anda dengan bingkai Anda, Anda bisa melihatnya sekarang berfungsi

Masalahnya seperti yang bisa Anda tebak, adalah bahwa setiap pengunjung situs web Anda harus melakukan tugas ini untuk mengakses bingkai Anda.

Anda dapat melihat bahwa chrome akan memblokir URL Anda untuk setiap sesi navigasi, sementara chrome dapat menghafal selamanya bahwa Anda mempercayai domain ini.

Jika bingkai Anda dapat diakses dengan HTTP daripada HTTPS, saya sarankan Anda untuk menggunakannya, jadi masalah ini akan terpecahkan.

Rémi Becheras
sumber
1
Saya pikir ketika Anda membuka tab lain, Anda harus pergi ke https://domain.comdan menerima sertifikat SSL.
Hozefa
2
@ RémiBecheras, apakah ada cara agar Chrome ingat untuk mempercayai sertifikat melalui beberapa sesi navigasi?
Felix
3
Untuk menambahkan aturan seperti itu, Anda harus mendapatkan sertifikat. Jika itu milik Anda, Anda sudah memilikinya. Jika tidak, klik ikon kiri https di adressbar> informasi sertifikat> perincian> ekspor. Kemudian, gunakan file ini
Rémi Becheras
1
Ini juga berfungsi untuk kasus aneh di mana sebuah situs mengirimkan permintaan ke domain yang sama (sendiri) yang baru saja saya setujui melanjutkan melewati sertifikat yang ditandatangani sendiri tetapi kemudian Chrome melakukan kesalahan ini.
Michael
1
Apakah ada cara untuk melakukan bypass semacam ini melalui kode sisi klien? Artinya, dapatkah saya memprogram ke klien "hei server yang Anda coba akses ini terlihat samar, tetapi tidak apa-apa percayalah. Saya menulis Anda berdua, Anda secara teknis kode saudara / saudari / saudara netral gender"?
Discodane
33

Terkadang Google Chrome melempar kesalahan ini, meskipun seharusnya tidak. Saya mengalaminya ketika Chrome memiliki versi baru, dan itu harus dimulai ulang. Setelah memulai kembali halaman yang sama berfungsi tanpa kesalahan. Kesalahan di konsol adalah:

net::ERR_INSECURE_RESPONSE
Balazs Nemeth
sumber
7
Dikonfirmasi, memulai ulang Chrome (dan mematikan semua proses Chrome latar belakang) telah memperbaikinya untuk saya.
Oran Dennison
5
tidak bekerja .. dengan sertifikat yang ditandatangani sendiri .. tidak akan berfungsi dengan memulai kembali
user1735921
1
Dikonfirmasi juga dengan saya!
nemke
@ Balazs, Apakah merestart browser satu-satunya cara? Dengan asumsi kita tidak mampu memulai kembali, adakah cara untuk melakukannya chrome://net-internals?
Pacerier
1
Restart Chrome (tanpa proses latar belakang) juga memperbaikinya untuk saya. Terima kasih!
EnocNRoll - AnandaGopal Pardue
8

Saya masih mengalami masalah yang dijelaskan di atas pada perangkat uji Asus T100 Windows 10 untuk peramban Edge dan Chrome (yang terbaru).

Solusi ada di pengaturan tanggal / waktu perangkat ; entah bagaimana tanggal itu tidak diatur dengan benar (tanggal di masa lalu). Memulihkan ini dengan mengatur tanggal yang benar (dan me-restart browser) menyelesaikan masalah untuk saya. Saya harap saya menyelamatkan seseorang sakit kepala men-debug masalah ini.

Sebastiaan Ordelman
sumber
Saya mengalami kesalahan yang sama pada asus zenbook yang menjalankan Windows 8. Sayangnya, ini tidak berhasil bagi saya tetapi dapatkah Anda menjelaskan lebih detail bagaimana Anda mengatur ulang tanggal / waktu? Hanya dengan mengatur zona waktu melalui windows ui?
DEls
@DEls, saya mengubah zona waktu pada konfigurasi Windows - yang mengatur ulang jam sistem untuk saya. Apakah Anda me-restart browser setelahnya? Jika pengaturan waktu tidak menyelesaikan masalah Anda mungkin harus melihat ke solusi lain yang dijelaskan dalam topik ini.
Sebastiaan Ordelman
Saya tidak tahu mengapa, tetapi ini berhasil untuk saya. Tahun ditetapkan ke 2048, mengubahnya ke tahun ini dan semua diperbaiki. Terima kasih @SebastiaanOrdelman
deanwilliammills
6

buka konsol Anda dan tekan URL di dalamnya. itu akan membawa Anda ke halaman API dan kemudian di halaman menerima sertifikat SSL, kembali ke halaman aplikasi Anda dan memuat ulang. ingat bahwa sertifikat SSL seharusnya sudah dikeluarkan untuk lingkungan Dev Anda sebelumnya.

Ramin Ahmadi
sumber
4

Jika Anda mengembangkan, dan Anda mengembangkan dengan mesin Windows, cukup tambahkan localhost sebagai Situs Tepercaya .

Dan ya, sesuai komentar DarrylGriffiths, meskipun mungkin terlihat seperti Anda menambahkan pengaturan Internet Explorer ...

Saya percaya itu adalah pengaturan Windows daripada IE. Meskipun MS cenderung berasumsi bahwa mereka hanya IE (karenanya peringatan di sebelah "Enable Protected Mode" yang diperlukan untuk me-restart IE) ...

Jim G.
sumber
4
Saya menggunakan linux ubuntu, bukan windows, ada solusi?
user1735921
4

Menawarkan solusi potensial lain untuk kesalahan ini.

Jika Anda memiliki aplikasi frontend yang membuat panggilan API ke backend, pastikan Anda merujuk nama domain yang telah dikeluarkan sertifikat.

misalnya

https://example.com/api/etc

dan tidak

https://123.4.5.6/api/etc

Dalam kasus saya, saya membuat panggilan API ke server yang aman dengan sertifikat, tetapi menggunakan IP alih-alih nama domain. Ini melempar Failed to load resource: net::ERR_INSECURE_RESPONSE.

Liam George Betsworth
sumber
0

Coba kode ini untuk ditonton, dan laporkan, kemungkinan net::ERR_INSECURE_RESPONSE

Saya juga mengalami masalah ini, menggunakan sertifikat yang ditandatangani sendiri, yang saya pilih untuk tidak disimpan ke dalam Pengaturan Chrome. Setelah mengakses domain https dan menerima sertifikat, panggilan ajax berfungsi dengan baik. Tetapi begitu penerimaan telah habis waktu atau sebelum pertama kali diterima, jQuery.ajax()panggilan gagal diam-diam: timeoutparameter tampaknya tidak membantu dan error()fungsi tidak pernah dipanggil.

Karena itu, kode saya tidak pernah menerima success()atau error()menelepon dan karenanya hang. Saya percaya ini adalah bug dalam penanganan kesalahan ini oleh jquery. Solusi saya adalah memaksa error()panggilan setelah batas waktu yang ditentukan.

Kode ini mengasumsikan panggilan jquery ajax dari formulir jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional}).

Catatan: Anda mungkin ingin mengubah fungsi di dalam setTimeoutuntuk mengintegrasikan terbaik dengan UI Anda: daripada menelepon 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);
}
JJ Stiff
sumber
0

Masalah ini karena https Anda yang berarti sertifikasi SSL. Coba di Localhost.

Sachin dari Pune
sumber