2014-12-09 12 views
8

Tôi đang đấu tranh để thực thi kết nối SSL cho ứng dụng đường ray chạy trên Heroku (khu vực EU).Buộc SSL cho các ứng dụng Heroku chạy trong khu vực EU

Tôi đã thêm các CERT (inc Heroku SSL add-on) cho một miền tùy chỉnh thành công (nếu tôi nói rõ https: //..com nó hoạt động hoàn hảo)

Nhưng tôi muốn chuyển hướng tất cả http yêu cầu kết nối https.

Đối với các ứng dụng ở các khu vực của Hoa Kỳ, điều này yêu cầu bản ghi DNS tên miền tùy chỉnh trỏ tới .herokussl.com NOT .herokuapp.com. Tài liệu: https://devcenter.heroku.com/articles/ssl-endpoint#dns-and-domain-configuration

Đối với ứng dụng ở khu vực EU, bản ghi DNS tùy chỉnh sẽ vẫn trỏ đến .herokuapp.com mà dường như không thực thi kết nối SSL theo mặc định.

Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể thực hiện tất cả các kết nối đến ứng dụng Heroku của tôi chạy ở châu Âu bị buộc phải chạy qua SSL?

Trả lời

25

production.rb

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

này sẽ chuyển hướng tất cả lưu lượng http https

Edit: giá trị của nó lưu ý rằng đây là một điều Rails hơn là một Heroku một.

Revision:

Như câu trả lời này/câu hỏi thường xuyên được nhìn thấy và bỏ phiếu tán, nó có giá trị lưu ý rằng đây cũng là có thể trong một bộ điều khiển trên theo yêu cầu của cơ sở:

class AccountsController < ApplicationController 
    force_ssl if: :ssl_configured? 

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

Đây là những gì tôi đang tìm kiếm. Cảm ơn! –

1

FYI câu hỏi của bạn đề cập herokussl.com là một phần của dịch vụ Heroku SSL Endpoint không được chấp nhận. Heroku hiện khuyên bạn nên sử dụng dịch vụ Heroku SSL:

Tiện ích bổ sung SSL Endpoint chỉ được đề xuất nếu bạn cần hỗ trợ khách hàng trình duyệt cũ không hỗ trợ SNI. Đề xuất mặc định của chúng tôi là sử dụng SSL Heroku được mô tả trong this document.

Cũng lưu ý rằng tên miền appname.herokuapp.com đã được bật SSL và có thể truy cập bằng cách sử dụng https, ví dụ: https://appname.herokuapp.com.

Các vấn đề liên quan