web-dev-qa-db-fra.com

Impossible de charger la ressource: net :: ERR_INSECURE_RESPONSE

Y at-il un moyen de tromper le serveur afin que 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 suis en train d'extraire l'iframe d'un site Web html vers un autre site Web, mais l'erreur continue de recevoir l'erreur de la console (chrome) dans le titre de cette question.

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

205
user3594437

Votre ressource utilise probablement un certificat SSL auto-signé sur 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 ceci de cette façon:

  • En supposant que l'URL de votre cadre est 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 remarquerez que chrome bloquera votre URL pour chaque session de navigation, alors qu'il peut mémoriser à tout jamais votre confiance dans ce domaine.

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

300
Rémi Becheras

Parfois, Google Chrome lève cette erreur, même si elle ne devrait pas… .. Je l’ai éprouvée lorsque Chrome disposait d’une nouvelle version et qu’il fallait la redémarrer . erreur dans la console était:

net::ERR_INSECURE_RESPONSE
33
Balazs Nemeth

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

La solution était dans les paramètres date/heure du périphérique; en quelque sorte, la date n'a pas été réglée correctement (date dans le passé). Restaurer 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 un mal de tête à quelqu'un pour résoudre ce problème.

8

ouvrez votre console et tapez l'URL à l'intérieur. cela vous mènera à la page API puis, dans la page, acceptez le certificat SSL, revenez à la page de votre application et rechargez. N'oubliez pas que des certificats SSL ont déjà dû être émis pour votre environnement de développement. 

5
Ramin Ahmadi

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

Et oui, selon le commentaire de DarrylGriffiths, même s'il semble que vous ajoutiez un paramètre Internet Explorer ...

Je crois que ce sont Windows plutôt que les paramètres IE. Bien que MS ait tendance à supposer qu'il ne s'agit que de IE (d'où l'alerte à côté de "Activer le mode protégé" indiquant qu'il faut redémarrer IE) ...

4
Jim G.

Offrant une autre solution potentielle à cette erreur.

Si vous avez une application frontale qui effectue des appels d'API au backend, veillez à référencer le nom de domaine pour 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 passais des appels d'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.

4

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

0
Sachin from Pune

Essayez ce code pour rechercher et signaler un possible net::ERR_INSECURE_RESPONSE

J'avais également ce problème, à l'aide d'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 sa première acceptation, l'appel jQuery.ajax() échoue silencieusement: le paramètre timeout ne semble pas aider et la fonction error() n'est jamais appelée.

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

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

Remarque: vous souhaiterez probablement modifier la fonction dans la variable setTimeout afin de mieux l'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
JJ Stiff