Wie gehe ich mit net::ERR_SSL_PROTOCOL_ERROR um?

Lesezeit: 3 Minuten

Ich füge eine JS-Bibliothek in meine Website ein

<script type="text/javascript" src="http://www.turnjs.com/lib/turn.min.js "></script> 

die von einer Webdesign-Firma entworfen, gepflegt und gehostet wird. Die Umsetzung dessen, was ich zu erreichen versuche, scheint gut kodiert zu sein – siehe meine JSFiddle – es funktioniert ohne Fehler. Wenn Sie jedoch den Code von meinem JSfiddle kopieren und in meine Website einfügen, funktioniert es überhaupt nicht – die Google Chrome-Entwicklerkonsole zeigt dies:

GET https://www.turnjs.com/lib/turn.min.js net::ERR_SSL_PROTOCOL_ERROR

Aber es ist seltsam, da mein Jsfiddle-Code dasselbe enthält turn.min.js und es funktioniert dort, aber auf meiner Website nicht.

  • http:// funktioniert, https:// nicht.

    – robertklep

    5. April 2017 um 13:31 Uhr

  • In der Geige schließt du die Datei durch http://nicht https://. Sie müssen Ihr SSL-Zertifikat reparieren – vorausgesetzt, Sie haben eines. Wenn Sie dies nicht tun, können Sie es nicht verwenden https://

    – Rory McCrossan

    5. April 2017 um 13:31 Uhr


  • @RoryMcCrossan @robertklep Ja, ich verstehe jetzt, aber dann habe ich diesen gemischten Fehler und bekomme das gleiche Ergebnis: Mixed Content: The page at 'https://www.mywebsite.com' was loaded over HTTPS, but requested an insecure script 'http://www.turnjs.com/lib/turn.min.js'. This request has been blocked; the content must be served over HTTPS.

    – BB-8

    5. April 2017 um 13:37 Uhr

  • Woher kommt dieser Fehler? Dies wird durch den Aufruf von nicht gesicherten Inhalten (z. http://) von einer sicheren Seite (https://)

    – Rory McCrossan

    5. April 2017 um 13:42 Uhr

  • @RoryMcCrossan Ich weiß, was den Fehler verursacht hat, aber wie kann ich ihn beheben, ohne mit SSL-Zertifikat zu manipulieren. weil ich keinen direkten Zugriff darauf habe

    – BB-8

    5. April 2017 um 13:46 Uhr


Dies ist kein Javascript-Problem, sondern ein SSL-Problem.

Sie können keine Datei über eine unsichere Verbindung (http) von einer HTML-Seite abrufen, die über eine sichere Verbindung (https) bereitgestellt wird. Wenn Sie https verwenden (und Sie SOLLTEN!), müssen Sie das Skript über eine sichere Verbindung abrufen. Um die Datei zu erhalten, sollten Sie Folgendes verwenden:

<script type="text/javascript" src="https://www.turnjs.com/lib/turn.min.js "></script> 

Und stellen Sie sicher, dass die Datei über https bereitgestellt wird, indem Sie den Server entsprechend konfigurieren. Hier ist eine einfache Konfiguration für lighttpdund hier ist einer für Apache. Wenn Sie kein CA-signiertes Zertifikat haben, können Sie eines mit letsencrypt ( www.letsencrypt.org/getting-started/ ) erhalten. Wenn Sie den Server nicht kontrollieren, sollten Sie sich mit der Person in Verbindung setzen, die dies tut.

Benutzeravatar von SouXin
SouXin

  • 1) http://www.turnjs.com/lib/turn.min.js konnte nicht über HTTPS erreicht werden. Dies verursacht Ihren Fehler.
  • 2) Auf JSfiddle wird über HTTP zugegriffen, daher keine Probleme
  • 3) <script type="text/javascript" src="http://www.turnjs.com/lib/turn.min.js "></script> wird Ihrer Seite in jedem Fall Probleme bereiten, da dies ein Beispiel für gemischte Inhalte ist, die von fast allen Browsern blockiert werden.

Lösung:

Kopieren Sie diese Datei auf Ihren Server und binden Sie dann die lokale Version ein

Ich ziehe es vor, Skripte auf diese Weise in die Seiten einzufügen:
<script type="text/javascript" src="https://www.turnjs.com/lib/turn.min.js "></script>.

Dadurch konnte der Browser den Verbindungstyp selbst überprüfen. Was in Ihrem Fall eigentlich nicht funktioniert (siehe S.1).

Eine sehr gute Erklärung in Google-Entwickler

1442750cookie-checkWie gehe ich mit net::ERR_SSL_PROTOCOL_ERROR um?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy