
Ich verwende Ubuntu 14.04 mit Nginx 1.8.0. Beim Öffnen der Webseiten über https scheinen die Seiten defekt zu sein, da CSS/JS/Bilder nicht geladen werden. Ich erhalte diesen Fehler " Blocked loading mixed active content
"
Das ist mein nginx.conf
:https://github.com/adithyakhamithkar/ansible/blob/master/roles/nginx/templates/nginx.j2
Dies ist meine virtuelle Hostdatei: https://github.com/adithyakhamithkar/ansible/blob/master/roles/nginx/templates/virtualhost_ssl.j2
Kann mir bitte jemand erklären, wie ich das beheben kann?
Antwort1
Kann nicht mit der Nginx-Konfiguration behoben werden
Betrachten Sie die folgende HTML-Datei:
<html>
<head>
</head>
<body>
<img src="http://example.com/some/image.png">
</body>
</html>
Wenn diese HTML-Datei über https bereitgestellt wird, wird siestetseine Warnung vor gemischten Inhalten generieren. Der Versuch, die nachfolgende Anfrage zu korrigieren, /some/image.png
schlägt fehl, die Anfrage wird vom Browser blockiert und erreicht den Server nicht.
Korrigieren Sie das HTML
Die einzige effektive Lösung besteht darin, die HTML-Quelle für die Hauptanforderung zu korrigieren, sodass auch alle Assets angefordert werden. https://
Ändern Sie das HTML also folgendermaßen:
<html>
<head>
</head>
<body>
<img
src="/some/image.png"
alt="same domain and port as this html page please"
/>
</body>
</html>
Oder dieses:
<html>
<head>
</head>
<body>
<img
src="https://example.com/some/image.png"
alt="explicit https"
/>
</body>
</html>
In den Kommentaren haben Sie WordPress als Beispiel erwähnt. Für eine WordPress-Installation ist das Einzige, was erforderlich ist (im Prinzip, in der Praxis ist mit etwas Herumprobieren zu rechnen),Ändern Sie die Site-URLsodass WordPress dies https://example.com
als Stamm-URL für die Installation betrachtet.
Antwort2
Gemischte aktive Inhalte werden jetzt in Firefox 23 und höher standardmäßig blockiert. Bei anderen Browsern bin ich mir nicht sicher.
Was ist gemischter Inhalt?
Wenn ein Benutzer eine über HTTP bereitgestellte Seite besucht, ist seine Verbindung anfällig für Lauschangriffe und Man-in-the-Middle-Angriffe (MITM). Wenn ein Benutzer eine über HTTPS bereitgestellte Seite besucht, wird seine Verbindung mit dem Webserver authentifiziert und mit SSL verschlüsselt und ist somit vor Lauschangriffen und MITM-Angriffen geschützt.
Wenn eine HTTPS-Seite jedoch HTTP-Inhalte enthält, kann der HTTP-Teil von Angreifern gelesen oder geändert werden, auch wenn die Hauptseite über HTTPS bereitgestellt wird. Wenn eine HTTPS-Seite HTTP-Inhalte enthält, nennen wir diese Inhalte „gemischt“. Die Webseite, die der Benutzer besucht, ist nur teilweise verschlüsselt, da einige der Inhalte unverschlüsselt über HTTP abgerufen werden. Der Mixed Content Blocker blockiert bestimmte HTTP-Anfragen auf HTTPS-Seiten.
Klingt, als würden Sie statische Inhalte ohne SSL verlinken. Sie sollten Ihre Inhalte wie folgt verlinken:
<a href='//host.com/file.png>
Wenn Sie eine Verknüpfung von einem anderen Host benötigen.