2014-12-09 2 views
8

Ich habe Schwierigkeiten, eine SSL-Verbindung für eine auf Heroku (EU-Region) ausgeführte Rails-App durchzusetzen.Erzwinge SSL für Heroku-Apps, die in der EU-Region ausgeführt werden

Ich habe das CERT (inc Heroku SSL Add-on) zu einer benutzerdefinierten Domain erfolgreich hinzugefügt (wenn ich explizit https angeben: //..com es funktioniert perfekt)

Aber ich will alle umleiten http Anfragen an eine https-Verbindung.

Für Apps in den US-Regionen müssen benutzerdefinierte Domain-DNS-Einträge auf .herokussl.com NOT .herokuapp.com verweisen. Google Text & Tabellen: https://devcenter.heroku.com/articles/ssl-endpoint#dns-and-domain-configuration

Für Apps in EU-Regionen sollten benutzerdefinierte DNS-Einträge immer noch auf .herokuapp.com verweisen, das anscheinend keine SSL-Verbindung erzwingt.

Daher lautet meine Frage: Wie kann ich alle Verbindungen zu meiner in Europa laufenden Heroku-App durch SSL gezwungen werden?

Antwort

25

production.rb

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

Diese gesamten HTTP-Verkehr

Bearbeiten auf https umgeleitet wird: Sein bemerkenswert, dass dies eine Rails Sache ist eher als ein Heroku ein.

Revision:

Da diese Antwort/Frage regelmäßig gesehen und upvoted wird, ist es erwähnenswert, dass diese innerhalb einer Steuerung auf einer Basis pro Anfrage auch möglich ist:

class AccountsController < ApplicationController 
    force_ssl if: :ssl_configured? 

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

Das ist, was ich suche. Vielen Dank! –

1

FYI Ihre Frage erwähnt herokussl.com Dies ist Teil des veralteten Dienstes Heroku SSL Endpoint. Heroku empfiehlt nun den Heroku SSL-Dienst:

Die SSL Endpoint Add-on wird nur empfohlen, wenn Sie ältere Browser-Clients unterstützen müssen, die SNI nicht unterstützen. Unsere Standardempfehlung ist die Verwendung der Heroku SSL, die unter this document beschrieben wird.

Beachten Sie auch, dass appname.herokuapp.com Domains sind bereits SSL-fähig und kann mit https zum Beispiel https://appname.herokuapp.com zugegriffen werden.

Verwandte Themen