2014-12-09 11 views
8

Heroku (AB bölgesi) üzerinde çalışan bir ray uygulaması için SSL bağlantısı zorlamak için mücadele ediyorum.EU bölgesinde çalışan Heroku uygulamaları için SSL'yi zorla

ben ekledim sertifika (inc Heroku SSL eklenti) başarıyla özel bir alan adına (Ben açıkça https bildiririseniz: //..com mükemmel çalışır)

Ama bütün yönlendirmek istiyorum http https bağlantısına istekte bulunur.

ABD bölgelerindeki uygulamalar için bu, özel etki alanı DNS kayıtlarını .herokussl.com NOT .herokuapp.com adresine işaret etmeyi gerektirir. Docs: https://devcenter.heroku.com/articles/ssl-endpoint#dns-and-domain-configuration

AB bölgelerindeki uygulamalar için, özel DNS kayıtları, varsayılan olarak bir SSL bağlantısını zorunlu kılmayan .herokuapp.com'u işaret etmelidir.

Bu nedenle, sorum şu: Avrupa'da çalışan Heroku uygulamasına tüm bağlantıları nasıl SSL üzerinden yürütmek zorundayım?

cevap

25

Bu https'ye

Edit tüm http trafiğini yönlendirecek

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

production.rb: Bu bir Heroku bir yerine bir Raylar şey olduğunu belirterek değer.

Revizyon:

düzenli görülen ve upvoted alır Bu cevap/soru olarak

, bu bir istek bazında bir denetleyici içinde de mümkün olduğunu belirtmeye değer:

class AccountsController < ApplicationController 
    force_ssl if: :ssl_configured? 

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

Bu benim aradığım şey. Teşekkürler! –

1

Bilginize soru herokussl.com bahseder Kullanımdan kaldırılan Heroku SSL Endpoint hizmetinin bir parçası. Heroku şimdi Heroku SSL hizmeti kullanılmasını önerir:

Eğer SNI desteklemeyen eski tarayıcı istemcileri desteklemek için gerekirse

SSL Endpoint eklenti sadece önerilir. Varsayılan önerimiz, this document'da açıklanan Heroku SSL'yi kullanmaktır.

Ayrıca appname.herokuapp.com etki zaten SSL etkinleştirilmiş olup https://appname.herokuapp.com, örneğin, https kullanarak erişilebilir olduğunu unutmayın.