Ambientazione config.force_ssl include ActionDispatch::SSL. I ActionDispatch::SSLdocumenti descrivono la funzionalità come segue (enfasi aggiunti per chiarezza):
Vedi le include qui e la documentazione per ActionDispatch :: SSL qui .
DOCS
Questo middleware viene aggiunto allo stack quando config.force_ssl = true e vengono passate le opzioni impostate in config.ssl_options. Esegue tre lavori per applicare richieste HTTP sicure:
Reindirizzamento TLS: reindirizza permanentemente le richieste http: // a https: //
con lo stesso host URL, percorso, ecc. Abilitato per impostazione predefinita. Imposta config.ssl_options
per modificare l'URL di destinazione (esredirect: { host: "secure.widgets.com", port: 8080 } ) O impostare
redirect: falseper disabilitare questa funzione.
Cookie protetti: imposta il secureflag sui cookie per indicare ai browser che non devono essere inviati insieme alle richieste http: //. Abilitato per impostazione predefinita. Impostato
config.ssl_options con secure_cookies: falseper disabilitare questa funzione.
HTTP Strict Transport Security (HSTS): indica al browser di ricordare questo sito come solo TLS e di reindirizzare automaticamente le richieste non TLS . Abilitato per impostazione predefinita. Configura config.ssl_optionscon hsts: falseper disabilitare. Impostato config.ssl_optionscon hsts: { … }per configurare HSTS:
expires: Quanto tempo, in secondi, queste impostazioni rimarranno. Il valore predefinito è
180.days(consigliato). Il minimo richiesto per qualificarsi per gli elenchi di precaricamento del browser è 18.weeks.
subdomains: Impostare su trueper indicare al browser di applicare queste impostazioni a tutti i sottodomini. Questo protegge i tuoi cookie dall'intercettazione da parte di un sito vulnerabile su un sottodominio. Il valore predefinito è true.
preload: Annuncia che questo sito potrebbe essere incluso negli elenchi HSTS precaricati dei browser. HSTS protegge il tuo sito a ogni visita tranne la prima, poiché non ha ancora visto l'intestazione HSTS. Per colmare questa lacuna, i fornitori di browser includono un elenco integrato di siti abilitati per HSTS. Vai a https://hstspreload.appspot.com per inviare il tuo sito per l'inclusione. Per disattivare HSTS, omettere l'intestazione non è sufficiente. I browser ricorderanno la direttiva HSTS originale fino alla scadenza. Utilizza invece l'intestazione per dire ai browser di far scadere immediatamente l'HSTS. L'impostazione hsts: falseè una scorciatoia perhsts: { expires: 0 } .
Le richieste possono disattivare il reindirizzamento con exclude:
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }