2014-12-09 13 views
8

Staram się wymusić połączenie SSL dla aplikacji szyny działającej na Heroku (region UE).Wymuszanie SSL dla aplikacji Heroku działających w regionie UE

Dodałem CERT (inc Heroku SSL add-on) do niestandardowej domeny pomyślnie (jeśli wyraźnie stwierdzić https: //..com działa idealnie)

Ale chcę, aby przekierować wszystkie http żądania do połączenia https.

W przypadku aplikacji w regionach USA wymaga to wskazania rekordów DNS domeny niestandardowej na .herokussl.com NOT .herokuapp.com. Dokumenty: https://devcenter.heroku.com/articles/ssl-endpoint#dns-and-domain-configuration

W przypadku aplikacji w regionach UE niestandardowe rekordy DNS powinny nadal wskazywać domenę .herokuapp.com, która domyślnie nie egzekwuje połączenia SSL.

W związku z tym moje pytanie brzmi: w jaki sposób mogę spowodować, że wszystkie połączenia z moją aplikacją Heroku w Europie będą musiały być uruchamiane przez SSL?

Odpowiedz

25

production.rb

Rails.application.configure do 
    config.force_ssl = true 
end 

To będzie przekierowywać cały ruch http na https

EDIT: warto zauważyć, że jest to sprawa Szyny zamiast Heroku jednym.

Weryfikacja:

Jak ta odpowiedź/pytanie regularnie dostaje postrzegane i upvoted, warto zauważyć, że jest to również możliwe w kontrolerze na na życzenie podstawie:

class AccountsController < ApplicationController 
    force_ssl if: :ssl_configured? 

    def ssl_configured? 
    !Rails.env.development? 
    end 
end 
+0

Tego właśnie szukam. Dzięki! –

1

FYI Twoje pytanie wymienia herokussl.com który jest częścią wycofanej usługi Heroku SSL Endpoint. Heroku zaleca się korzystanie z usługi Heroku SSL:

SSL Endpoint dodatek jest zalecane tylko wtedy, gdy trzeba wspierać klientów starszej przeglądarki, które nie obsługują Sni. Naszym domyślnym zaleceniem jest użycie Heroku SSL opisanego w this document.

Należy również pamiętać, że domeny są już appname.herokuapp.com SSL włączone i można uzyskać za pomocą protokołu https, na przykład, https://appname.herokuapp.com.

Powiązane problemy