iframes - Error al cargar el recurso: net:: ERR_INSECURE_RESPONSE
iframe f (8)
Existe una 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.
Estoy incorporando un iframe de un sitio web html a otro sitio web, pero sigo recibiendo el error de la 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.
A veces Google Chrome lanza 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
Este problema se debe a su https que significa certificación SSL. Pruébalo en Localhost.
Ofreciendo otra solución potencial a este error.
Si tiene una aplicación de frontend que hace llamadas API al backend, asegúrese de hacer referencia al nombre de dominio al 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 utilizando la IP en lugar del nombre de dominio. Esto arrojó un Failed to load resource: net::ERR_INSECURE_RESPONSE
.
Pruebe este código para ver e informar una posible net::ERR_INSECURE_RESPONSE
También estaba teniendo este problema, utilizando 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 caducado o antes de que haya sido aceptada por primera vez, la llamada jQuery.ajax()
falla silenciosamente: el parámetro timeout
no parece ser de ayuda y la función error()
nunca se llama.
Como tal, mi código nunca recibe una llamada de success()
o error()
y, por lo tanto, se bloquea. Creo que esto es un error en el manejo de jquery de este error. Mi solución es forzar la llamada de error()
después de un tiempo de espera especificado.
Este código asume una llamada jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
ajax de la forma jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Nota: es probable que desee cambiar la función dentro de setTimeout
para integrarse mejor con su interfaz de usuario: en lugar de llamar a 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);
}
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ás 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 solo son IE (de ahí la alerta al lado de "Habilitar Modo Protegido" que requiere que se reinicie IE) ...
Su recurso probablemente use un certificado SSL autofirmado sobre el protocolo HTTPS. Chromium, por lo tanto, Google Chrome bloquea por defecto este tipo de recurso considerado no seguro.
Puedes evitar esto de esta manera:
- Suponiendo que la URL de su marco sea
https://www.domain.com
, abra una nueva pestaña en chrome y vaya ahttps://www.domain.com
. - Chrome le pedirá que acepte el certificado SSL. Acéptalo
- Luego, si recargas tu página con tu marco, podrías ver que ahora funciona
El problema que 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 se puede acceder a su marco mediante HTTP en lugar de HTTPS, le sugiero que lo use, por lo que este problema se resolverá.
Todavía experimenté el problema descrito anteriormente en un dispositivo de prueba Asus T100 Windows 10 para los navegadores Edge y Chrome (hasta la fecha).
La solución estaba en la configuración de fecha / hora del dispositivo ; de alguna manera la fecha no se estableció correctamente (fecha en el pasado). Restaurar esto configurando la fecha correcta (y reiniciando los navegadores) solucionó el problema por mí. Espero salvar a alguien un dolor de cabeza al depurar este problema.
abre tu consola y pulsa la URL en el interior. lo llevará a la página de la API y luego en la página acepte el certificado SSL, regrese a la página de la aplicación y vuelva a cargar. recuerde que los certificados SSL deberían haberse emitido antes para su entorno Dev.