Kan bron niet laden: net::ERR_INSECURE_RESPONSE

Is er een manier om de server te misleiden, zodat ik deze foutmelding niet krijg:

De inhoud is geblokkeerd omdat deze niet is ondertekend met een geldig beveiligingscertificaat.

Ik trek een iframe van een html-website naar een andere website, maar ik krijg steeds de consolefout (chrome) in de titel van deze vraag en in internetverkenner staat:

De inhoud is geblokkeerd omdat deze niet is ondertekend met een geldig beveiligingscertificaat.


Antwoord 1, autoriteit 100%

Uw bron gebruikt waarschijnlijk een zelfondertekend SSL-certificaat via HTTPS-protocol.
Chromium, dus Google Chrome blokkeert standaard dit soort bronnen die als onveilig worden beschouwd.

U kunt dit op deze manier omzeilen:

  • Ervan uitgaande dat de URL van uw frame https://www.domain.comis, opent u een nieuw tabblad in Chrome en gaat u naar https://www.domain.com.
  • Chrome vraagt je om het SSL-certificaat te accepteren. Accepteer het.
  • Als je vervolgens je pagina herlaadt met je frame, zou je kunnen zien dat het nu werkt

Het probleem, zoals u kunt raden, is dat elke bezoeker van uw website deze taak moet uitvoeren om toegang te krijgen tot uw frame.

Je kunt zien dat Chrome je URL voor elke navigatiesessie blokkeert, terwijl Chrome voor altijd kan onthouden dat je dit domein vertrouwt.

Als je frame toegankelijk is via HTTP in plaats van HTTPS, raad ik je aan het te gebruiken, zodat dit probleem wordt opgelost.


Antwoord 2, autoriteit 11%

Soms geeft Google Chrome deze foutmelding, zelfs als dit niet het geval is.
Ik heb het meegemaakt toen Chrome een nieuwe versie had en deze opnieuw moest worden opgestart.
Na opnieuw opstarten werkte dezelfde pagina zonder fouten.
De fout in de console was:

net::ERR_INSECURE_RESPONSE

Antwoord 3, autoriteit 3%

Ik ondervond het hierboven beschreven probleem nog steeds op een Asus T100 Windows 10-testapparaat voor zowel de (up-to-date) Edge- als de Chrome-browser.

Oplossing zat in de datum/tijd-instellingen van het apparaat; op de een of andere manier was de datum niet correct ingesteld (datum in het verleden). Dit herstellen door de juiste datum in te stellen (en de browsers opnieuw te starten) loste het probleem voor mij op. Ik hoop dat ik iemand hoofdpijn kan besparen bij het debuggen van dit probleem.


Antwoord 4, autoriteit 2%

open je console en klik op de URL binnenin. het brengt je naar de API-pagina en accepteer op de pagina het SSL-certificaat, ga terug naar je app-pagina en laad opnieuw.
onthoud dat SSL-certificaten eerder hadden moeten zijn uitgegeven voor uw Dev-omgeving.


Antwoord 5, autoriteit 2%

Een andere mogelijke oplossing voor deze fout bieden.

Als je een frontend-applicatie hebt die API-aanroepen doet naar de backend, zorg er dan voor dat je verwijst naar de domeinnaam waaraan het certificaat is uitgegeven.

bijv.

https://example.com/api/etc

en niet

https://123.4.5.6/api/etc

In mijn geval deed ik API-aanroepen naar een beveiligde server met een certificaat, maar gebruikte ik het IP-adres in plaats van de domeinnaam. Dit veroorzaakte een Failed to load resource: net::ERR_INSECURE_RESPONSE.


Antwoord 6

Als u aan het ontwikkelen bent, en u ontwikkelt met een Windows-machine, voegt u eenvoudig localhostals een vertrouwde site.

En ja, volgens de opmerking van DarrylGriffiths, hoewel het kan lijken alsof je een Internet Explorer-instelling toevoegt…

Ik geloof dat dit Windows is in plaats van IE-instellingen. Hoewel MS de neiging heeft om aan te nemen dat ze alleen IE zijn (vandaar de waarschuwing naast “Beveiligde modus inschakelen” dat herstart IE vereist is)…


Antwoord 7

Probeer deze code om te letten op en rapporteer een mogelijk net::ERR_INSECURE_RESPONSE

Ik had dit probleem ook met een zelfondertekend certificaat, dat ik niet heb opgeslagen in de Chrome-instellingen. Na toegang tot het https-domein en acceptatie van het certificaat, werkt de ajax-oproep prima. Maar zodra die acceptatie is verlopen of voordat deze voor het eerst is geaccepteerd, mislukt de aanroep jQuery.ajax()stil: de parameter timeoutlijkt niet te helpen en de error()functie wordt nooit aangeroepen.

Als zodanig ontvangt mijn code nooit een success()– of error()-aanroep en blijft daarom hangen. Ik geloof dat dit een fout is in de verwerking van deze fout door jQuery. Mijn oplossing is om de error()-aanroep na een opgegeven time-out te forceren.

Deze code gaat uit van een jQuery ajax-aanroep van de vorm jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional}).

Opmerking: u zult waarschijnlijk de functie binnen de setTimeoutwillen wijzigen om het beste te integreren met uw gebruikersinterface: in plaats van alert()aan te roepen.

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);
}

Antwoord 8

Dit probleem wordt veroorzaakt door je https, wat SSL-certificering betekent. Probeer op Localhost.

Other episodes