SSL с рубином на рельсах

Что я должен сделать, чтобы заставить трафик к моему рубину на приложении рельсов использовать https? Мне установили свидетельство и если я вручную печатаю «https://» в строке поиска, получая доступ к месту, мало символа замка появляется, но просто вручную идущий в www.example-app.com в моем браузере посылает трафик через http://.

Есть ли некоторая короткая конфигурация, или действительно ли это более сложно, чем это? Я никогда не должен был иметь дело с SSL прежде, поэтому извинять меня, если я кажусь, что не знаю то, что продолжается.

Я принимаю в MediaTemple в (gs), если это имеет значение, или у любого есть опыт с такой установкой.

12
задан Austin Fitzpatrick 23 January 2010 в 01:24
поделиться

3 ответа

Проверьте требование ssl_requirement.

Он позволяет указать в ваших контроллерах, какие действия должны подаваться через https, а какие действия могут подаваться через https. Затем он позаботится о перенаправлении с http на https и наоборот.

Из документации:

class ApplicationController < ActiveRecord::Base
  include SslRequirement
end

class AccountController < ApplicationController
  ssl_required :signup, :payment
  ssl_allowed :index

  def signup
    # Non-SSL access will be redirected to SSL
  end

  def payment
    # Non-SSL access will be redirected to SSL
  end

  def index
    # This action will work either with or without SSL
  end

  def other
    # SSL access will be redirected to non-SSL
  end
end
14
ответ дан 2 December 2019 в 06:26
поделиться

Ruby On Rails - это каркас для приложений, а не веб-сервер. Конфигурация HTTPS, необходимая для изменения, находится на вашем веб-сервере (Apache, Nginx и etc) Config.

7
ответ дан 2 December 2019 в 06:26
поделиться

Это довольно легко, и вам не нужен драгоценный камень для него. Я блогировал, как перенаправить без www в рельсах здесь . Перенаправление на HTTPS (почти) точно так же.

class ApplicationController < ActionController::Base
  before_filter :redirect_to_https

  def redirect_to_https
    redirect_to "https://example.com#{request.fullpath}" if !request.ssl? && request.host != "localhost"
  end
end

Примените ваше до_filter на все, что вы хотите убедиться, что сохраняется за безопасностью SSL. Я обычно один для повторного использования кода и драгоценных камней, но этот смешно просто. Узнайте больше о Request.Protocol . (Обратите внимание, что в среде Ruby 1.9.3 / Rails 3.2 Окружающая среда, название request.fullpath ; в некоторых более ранних версиях это было request.request_uri ; см. Примечания выпуска и т. Д. .)

3
ответ дан 2 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: