Error al cargar el recurso: net :: ERR_INSECURE_RESPONSE

206

¿Hay alguna manera de engañar al servidor para que no reciba este error:

El contenido se bloqueó porque no estaba firmado por un certificado de seguridad válido.

Extraigo un iframe de un sitio web html en otro sitio web, pero sigo recibiendo el error de consola (Chrome) en el título de esta pregunta y en Internet Explorer dice:

El contenido se bloqueó porque no estaba firmado por un certificado de seguridad válido.

usuario3594437
fuente
parece que está intentando acceder a un recurso inseguro desde un recurso seguro. Creo que tienen un problema similar aquí .
Derek

Respuestas:

301

Su recurso probablemente use un certificado SSL autofirmado sobre el protocolo HTTPS. Chromium, por lo que Google Chrome bloquea de forma predeterminada este tipo de recurso considerado inseguro.

Puede evitar esto de esta manera:

  • Suponiendo que la URL de su marco es https://www.domain.com, abra una nueva pestaña en Chrome y vaya a https://www.domain.com.
  • Chrome le pedirá que acepte el certificado SSL. Acéptalo.
  • Luego, si vuelve a cargar su página con su marco, podría ver que ahora funciona

El problema, como puede adivinar, es que cada visitante de su sitio web tiene que hacer esta tarea para acceder a su marco.

Puedes notar que Chrome bloqueará tu URL para cada sesión de navegación, mientras que Chrome puede memorizar para siempre que confías en este dominio.

Si HTTP puede acceder a su marco en lugar de HTTPS, le sugiero que lo use, por lo que este problema se resolverá.

Rémi Becheras
fuente
1
Creo que cuando abres la otra pestaña, debes ir https://domain.comy aceptar el certificado SSL.
Hozefa
2
@ RémiBecheras, ¿hay alguna forma de hacer que Chrome recuerde confiar en el certificado en varias sesiones de navegación?
Felix
3
Para agregar una regla de este tipo, debe obtener el certificado. Si es tuyo, ya lo tienes. De lo contrario, haga clic en el ícono izquierdo https en la barra de direcciones> información del certificado> detalles> exportar. Luego, use este archivo
Rémi Becheras
1
Esto también funcionó para el extraño caso en el que un sitio estaba enviando una solicitud al mismo dominio (que yo mismo) que acababa de aprobar, pasando el certificado autofirmado, pero luego Chrome arrojó este error.
Michael
1
¿Hay alguna manera de hacer este tipo de derivación a través del código del lado del cliente? Es decir, ¿puedo programar en el cliente "oye, este servidor al que estás intentando acceder se ve incompleto, pero está bien, créanme. Les escribí a ambos, técnicamente están codificando hermanos / hermanas / hermanos de género neutro"?
discodane
33

A veces, Google Chrome arroja este error, incluso si no debería. Lo experimenté cuando Chrome tenía una nueva versión y necesitaba reiniciarse. Después de reiniciar la misma página funcionó sin ningún error. El error en la consola fue:

net::ERR_INSECURE_RESPONSE
Balazs Nemeth
fuente
77
Confirmado, un reinicio de Chrome (y eliminar todos los procesos de fondo de Chrome) me lo arregló.
Oran Dennison
55
no funciona ... es un certificado autofirmado ... no funcionará reiniciando
user1735921
1
¡Confirmado también conmigo!
nemke
@Balazs, ¿reiniciar el navegador es la única forma? Suponiendo que no podemos permitirnos reiniciar, ¿hay alguna manera de hacerlo a través dechrome://net-internals ?
Pacerier
1
Un reinicio de Chrome (sin procesos en segundo plano) también lo arregló para mí. ¡Gracias!
EnocNRoll - AnandaGopal Pardue
8

Todavía experimenté el problema descrito anteriormente en un dispositivo de prueba Asus T100 Windows 10 para el navegador Edge (actualizado) y Chrome.

La solución estaba en la configuración de fecha / hora del dispositivo ; de alguna manera, la fecha no se configuró correctamente (fecha en el pasado). Restaurar esto configurando la fecha correcta (y reiniciando los navegadores) resolvió el problema para mí. Espero ahorrarle a alguien un dolor de cabeza para depurar este problema.

Sebastiaan Ordelman
fuente
Me encuentro con un error similar en un asus zenbook con Windows 8. Desafortunadamente, esto no funcionó para mí, pero ¿puede explicar con más detalle cómo restablece la fecha / hora? Simplemente configurando la zona horaria a través de la interfaz de usuario de Windows?
DEls
@DEls, cambié las zonas horarias en la configuración de Windows, que restablecieron el reloj del sistema por mí. ¿Reiniciaste el navegador después? Si el tiempo no resuelve el problema, es posible que deba buscar la otra solución descrita en este tema.
Sebastiaan Ordelman
No sé por qué, pero esto funcionó para mí. El año se estableció en 2048, lo cambió al año actual y todo se arregló. Gracias @SebastiaanOrdelman
deanwilliammills
6

abre tu consola y presiona la URL dentro. te llevará a la página API y luego, en la página, acepta el certificado SSL, vuelve a la página de tu aplicación y vuelve a cargar. recuerde que los certificados SSL deberían haberse emitido antes para su entorno de desarrollo.

Ramin Ahmadi
fuente
4

Si está desarrollando, y está desarrollando con una máquina Windows, simplemente agregue localhost como un sitio de confianza .

Y sí, según el comentario de DarrylGriffiths, aunque puede parecer que está agregando una configuración de Internet Explorer ...

Creo que esos son Windows en lugar de la configuración de IE. Aunque MS tiende a suponer que son solo IE (de ahí la alerta al lado de "Habilitar modo protegido" que requiere reiniciar IE) ...

Jim G.
fuente
44
Estoy usando Linux Ubuntu, no Windows, ¿alguna solución?
user1735921
4

Ofreciendo otra posible solución a este error.

Si tiene una aplicación frontend que realiza llamadas API al backend, asegúrese de hacer referencia al nombre de dominio para el que se emitió el certificado.

p.ej

https://example.com/api/etc

y no

https://123.4.5.6/api/etc

En mi caso, estaba haciendo llamadas API a un servidor seguro con un certificado, pero usando la IP en lugar del nombre de dominio. Esto arrojó un Failed to load resource: net::ERR_INSECURE_RESPONSE.

Liam George Betsworth
fuente
0

Pruebe este código para observar e informar sobre un posible net::ERR_INSECURE_RESPONSE

También tenía este problema, usando un certificado autofirmado, que elegí no guardar en la Configuración de Chrome. Después de acceder al dominio https y aceptar el certificado, la llamada ajax funciona bien. Pero una vez que la aceptación ha expirado o antes de que se haya aceptado por primera vez, la jQuery.ajax()llamada falla en silencio: el timeoutparámetro no parece ayudar y elerror() nunca se llama a función.

Como tal, mi código nunca recibe una llamada success()o, error()por lo tanto, se cuelga. Creo que este es un error en el manejo de jquery de este error. Mi solución es forzar elerror() llamada después de un tiempo de espera especificado.

Este código asume una llamada jquery ajax del formulario jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional}).

Nota: Es probable que desee cambiar la función dentro setTimeoutpara integrarse mejor con su IU: en lugar de llamar 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
fuente
0

Este problema se debe a su https que significa certificación SSL. Prueba en Localhost.

Sachin de Pune
fuente