2013-02-12 7 views
7

Sto sviluppando un'applicazione Rails che utilizza la connessione SSL. Attualmente sto utilizzando risorse di terze parti che sono file js e css per l'implementazione di una mappa (OpenStreetMap). Ho già provato a importare queste risorse (js e css) nella mia applicazione, ma il codice javascript tenta di accedere a un WMS esterno via HTTP.Google Chrome Forces HTTPS

Il problema è che Google Chrome sta bloccando l'accesso a risorse di terze parti da HTTP quando l'applicazione è in HTTPS.

Così ho disabilitato SSL su alcune pagine dell'applicazione e ho cercato di forzare l'HTTP o HTTPS nel modo che desidero.

seguito da questo blog: http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/ e funziona.

Ma quando imposto il protocollo HTTP sulla pagina in cui queste risorse verranno utilizzate utilizzando Google Chrome, forza la connessione HTTPS causando loop infinito.

Se svuoto la cache di Chrome (che ha già effettuato l'accesso alla stessa pagina con HTTPS) per l'accesso tramite HTTP funziona. Ma se ho accesso a una pagina HTTPS e provo ad accedere tramite HTTP, Chrome forza la connessione HTTPS risultando in un ciclo infinito.

La domanda è: C'è qualcosa che posso impostare nella richiesta che fa sì che Chrome accetti la connessione?

saluti

risposta

10

Ho fatto qualche ricerca su questo, e si scopre che si accende force_ssl = true on Rails 3 fa sì che l'applicazione per inviare un header HSTS. C'è un po 'di informazioni su di esso qui: How to disable HTTP Strict Transport Security?

In sostanza, l'intestazione HSTS indica a Chrome (e Firefox) di accedere al sito solo tramite HTTPS per un periodo di tempo specifico.

Quindi ... la risposta che ho per voi ora è che è possibile cancellare la propria impostazione HSTS andando a about:net-internals all'interno del browser Chrome e rimuovendo lo stato HSTS.

penso che le risposte qui può aiutare: Rails: activating SSL support gets Chrome confused

+0

Grazie Skander M! Il problema era con l'HSTS. Ho risolto il problema usando la gemma rack-ssl-enforcer, costringendo l'HSTS a scadere. Ora posso disabilitare HTTPS sugli URL che voglio anche se la cache di Chrome è impostata per forzare HTTPS. Saluti – user2064568