Impossible de charger la ressource: net :: ERR_INSECURE_RESPONSE


206

Y a-t-il un moyen de tromper le serveur donc je ne reçois pas cette erreur:

Le contenu a été bloqué car il n'était pas signé par un certificat de sécurité valide.

Je tire une iframe d'un site Web html dans un autre site Web, mais je reçois toujours l'erreur de console (chrome) dans le titre de cette question et dans Internet Explorer, il dit:

Le contenu a été bloqué car il n'était pas signé par un certificat de sécurité valide.


il semble que vous tentiez d'accéder à une ressource non sécurisée à partir d'une ressource sécurisée. Je pense qu'ils ont un problème similaire ici .
Derek

Réponses:


301

Votre ressource utilise probablement un certificat SSL auto-signé sur le protocole HTTPS. Chrome, donc Google Chrome bloque par défaut ce type de ressource considérée comme non sécurisée.

Vous pouvez contourner cette façon:

  • En supposant que l'URL de votre cadre soit https://www.domain.com, ouvrez un nouvel onglet en chrome et accédez à https://www.domain.com.
  • Chrome vous demandera d'accepter le certificat SSL. Accepte-le.
  • Ensuite, si vous rechargez votre page avec votre cadre, vous pouvez voir que maintenant cela fonctionne

Le problème, comme vous pouvez le deviner, est que chaque visiteur de votre site Web doit effectuer cette tâche pour accéder à votre cadre.

Vous pouvez remarquer que Chrome bloquera votre URL pour chaque session de navigation, tandis que Chrome peut mémoriser à jamais que vous faites confiance à ce domaine.

Si votre cadre est accessible par HTTP plutôt que HTTPS, je vous suggère de l'utiliser, donc ce problème sera résolu.


1
Je pense que lorsque vous ouvrez l'autre onglet, vous devez vous rendre https://domain.comet accepter le certificat SSL.
Hozefa

2
@ RémiBecheras, existe-t-il un moyen pour que Chrome se souvienne de faire confiance au certificat sur plusieurs sessions de navigation?
Felix

3
Pour ajouter une telle règle, vous devez obtenir le certificat. Si c'est le vôtre, vous l'avez déjà. Sinon, cliquez sur l'icône https de gauche dans la barre d'adresse> informations sur le certificat> détails> exportation. Ensuite, utilisez ce fichier
Rémi Becheras

1
Cela a également fonctionné dans le cas étrange où un site envoyait une demande au même domaine (lui-même) que je venais d'approuver en continuant après le certificat auto-signé, mais Chrome lançait alors cette erreur.
Michael

1
Existe-t-il un moyen de contourner ce type de code côté client? Ce qui signifie, puis-je programmer dans le client "hé ce serveur auquel vous essayez d'accéder a l'air sommaire, mais ça me fait confiance. Je vous ai écrit tous les deux, vous êtes techniquement des frères / sœurs / frères et sœurs neutres"?
discodane

33

Parfois, Google Chrome renvoie cette erreur, même si ce n'est pas le cas. Je l'ai vécu lorsque Chrome avait une nouvelle version, et elle devait être redémarrée. Après avoir redémarré la même page a fonctionné sans aucune erreur. L'erreur dans la console était:

net::ERR_INSECURE_RESPONSE

7
Confirmé, un redémarrage de Chrome (et tuant tous les processus Chrome en arrière-plan) l'a corrigé pour moi.
Oran Dennison

5
ne fonctionne pas .. c'est un certificat auto-signé .. il ne fonctionnera pas en redémarrant
user1735921

1
Confirmé aussi avec moi!
nemke

@Balazs, le redémarrage du navigateur est-il le seul moyen? En supposant que nous ne pouvons pas nous permettre de redémarrer, existe-t-il un moyen de le faire via chrome://net-internals?
Pacerier

1
Un redémarrage de Chrome (sans processus d'arrière-plan) l'a également corrigé. Merci!
EnocNRoll - AnandaGopal Pardue

8

J'ai toujours rencontré le problème décrit ci-dessus sur un appareil de test Asus T100 Windows 10 pour les navigateurs Edge (et à jour) et Chrome.

La solution était dans les paramètres de date / heure de l'appareil ; en quelque sorte la date n'a pas été réglée correctement (date dans le passé). La restauration de cela en définissant la date correcte (et en redémarrant les navigateurs) a résolu le problème pour moi. J'espère que je sauve quelqu'un un mal de tête en déboguant ce problème.


Je rencontre une erreur similaire sur un ZenBook Asus sous Windows 8. Malheureusement, cela n'a pas fonctionné pour moi, mais pouvez-vous expliquer plus en détail comment réinitialiser la date / l'heure? Juste en définissant le fuseau horaire à travers les fenêtres ui?
DEls

@DEls, j'ai changé de fuseau horaire dans la configuration de Windows - qui réinitialise l'horloge système pour moi. Avez-vous redémarré le navigateur par la suite? Si le timing n'a pas résolu le problème, vous devrez peut-être rechercher l'autre solution décrite dans cette rubrique.
Sebastiaan Ordelman

Je ne sais pas pourquoi, mais cela a fonctionné pour moi. L'année a été fixée à 2048, l'a changée en année en cours et tout a été fixé. Merci @SebastiaanOrdelman
deanwilliammills

6

ouvrez votre console et appuyez sur l'URL à l'intérieur. cela vous amènera à la page API, puis dans la page, acceptez le certificat SSL, revenez à la page de votre application et rechargez. rappelez-vous que les certificats SSL auraient dû être émis pour votre environnement Dev auparavant.


4

Si vous développez et que vous développez avec une machine Windows, ajoutez simplement en localhost tant que site de confiance .

Et oui, selon le commentaire de DarrylGriffiths, bien qu'il puisse sembler que vous ajoutez un paramètre Internet Explorer ...

Je pense que ce sont des paramètres Windows plutôt que IE. Bien que MS ait tendance à supposer qu'ils ne sont qu'IE (d'où l'alerte à côté de "Activer le mode protégé" qu'il requiert une relance de IE) ...


4
J'utilise Linux Ubuntu, pas Windows, une solution?
user1735921

4

Offrir une autre solution potentielle à cette erreur.

Si vous disposez d'une application frontale qui effectue des appels d'API vers le backend, assurez-vous de référencer le nom de domaine vers lequel le certificat a été émis.

par exemple

https://example.com/api/etc

et pas

https://123.4.5.6/api/etc

Dans mon cas, je faisais des appels API à un serveur sécurisé avec un certificat, mais en utilisant l'IP au lieu du nom de domaine. Cela a jeté un Failed to load resource: net::ERR_INSECURE_RESPONSE.


0

Essayez ce code pour rechercher et signaler un éventuel net::ERR_INSECURE_RESPONSE

J'avais également ce problème, en utilisant un certificat auto-signé, que j'ai choisi de ne pas enregistrer dans les paramètres de Chrome. Après avoir accédé au domaine https et accepté le certificat, l'appel ajax fonctionne correctement. Mais une fois que cette acceptation a expiré ou avant d'avoir été acceptée pour la première fois, l' jQuery.ajax()appel échoue silencieusement: le timeoutparamètre ne semble pas aider et la error()fonction n'est jamais appelée.

En tant que tel, mon code ne reçoit jamais d' appel success()ou error()et se bloque donc. Je crois que c'est un bug dans la gestion par jquery de cette erreur. Ma solution consiste à forcer l' error()appel après un délai spécifié.

Ce code suppose un appel jquery ajax du formulaire jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional}).

Remarque: Vous souhaiterez probablement modifier la fonction dans le setTimeoutpour mieux s'intégrer à votre interface utilisateur: plutôt que d'appeler 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

Ce problème est dû à votre https qui signifie certification SSL. Essayez Localhost.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.