2013-02-12 16 views
7

Ich entwickle eine Rails-Anwendung, die SSL-Verbindung verwendet. Ich verwende derzeit Ressourcen von Drittanbietern, die js und CSS-Dateien für die Implementierung einer Karte (OpenStreetMap) sind. Ich habe bereits versucht, diese Ressourcen (js und css) in meine Anwendung zu importieren, aber der JavaScript-Code versucht, über HTTP auf ein externes WMS zuzugreifen.Google Chrome Forces HTTPS

Das Problem besteht darin, dass Google Chrome den Zugriff auf Ressourcen von Drittanbietern über HTTP blockiert, wenn sich die Anwendung in HTTPS befindet.

Also habe ich SSL auf bestimmten Seiten der Anwendung deaktiviert und versucht, HTTP oder HTTPS so zu zwingen, wie ich es wünsche.

Nach diesem Blog: http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/ und es funktioniert.

Aber wenn ich das HTTP-Protokoll auf die Seite zwingen, wo diese Ressourcen mit Google Chrome verwendet werden, erzwingt es HTTPS-Verbindung, die Endlosschleife verursacht.

Wenn ich den Chrome-Cache lösche (die bereits auf die gleiche Seite mit HTTPS zugegriffen haben), um über HTTP darauf zuzugreifen, funktioniert es. Wenn ich jedoch auf eine HTTPS-Seite zugegriffen und versucht habe, über HTTP darauf zuzugreifen, erzwingt Chrome die HTTPS-Verbindung, die zu einer Endlosschleife führt.

Die Frage ist: Kann ich in der Anfrage etwas festlegen, dass Chrome die Verbindung akzeptiert?

Grüße

Antwort

10

Ich habe einige der Forschung auf das getan, und es stellt sich heraus, dass auf Rails 3 auf force_ssl = true Drehen der App verursacht eine HSTS-Header zu senden. Es gibt ein paar Informationen darüber hier: How to disable HTTP Strict Transport Security?

Im Wesentlichen teilt der HSTS-Header Chrome (und Firefox), um für eine bestimmte Zeit auf Ihre Website nur über HTTPS zuzugreifen.

Also ... die Antwort, die ich für Sie jetzt habe, ist, dass Sie Ihre eigene HSTS-Einstellung löschen können, indem Sie in Ihrem Chrome-Browser about:net-internals gehen und den HSTS-Status entfernen.

Ich denke, die hier Antworten Ihnen helfen können: Rails: activating SSL support gets Chrome confused

+0

Danke Skander M! Das Problem war mit dem HSTS. Ich löste es mit dem Rack-ssl-enforcer-Juwel und zwang die HSTS zum Ablaufen. Jetzt kann ich HTTPS für die gewünschten URLs deaktivieren, auch wenn der Chrome-Cache so eingestellt ist, dass er HTTPS erzwingt. Grüße – user2064568