¿Alguien sabe de una forma de ejecutar Ruby Debugger y SSL al mismo tiempo con Thin?Thin con soporte SSL y ruby-debug
He estado utilizando Thin con éxito con Rails 3.0.10.
Lo inicio utilizando rails server --debugger
, y puedo depurar mi código.
Recientemente, también he necesitado agregar soporte SSL a mi aplicación, y me gustaría poder probarlo localmente con un certificado autofirmado.
Lamentablemente, no he encontrado la manera de iniciar Thin con soporte SSL al usar rails server
.
puedo iniciar correctamente fina con soporte SSL mediante el uso de:
thin start --ssl --ssl-verify --ssl-key-file ssllocal/server.key
--ssl-cert-file ssllocal/server.crt
Sin embargo, no he encontrado una manera de activar el depurador utilizando thin start
.
Parece que tengo la opción de ejecutar el depurador (rails server
) o SSL (thin start
), pero no ambos.
Parece posible hacer que Webrick ejecute SSL usando rails server
modificando el archivo de guías/guiones (see here). Experimenté con este enfoque, pero no he tenido éxito. Aquí está uno de los intentos:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3
# gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
# THIS IS NEW:
require "rails/commands/server"
require 'rack'
require 'thin'
module Rails
class Server
def default_options
super.merge({
:Port => 3000,
:environment => (ENV['RAILS_ENV'] || "development").dup,
:daemonize => false,
:debugger => false,
:pid => File.expand_path("tmp/pids/server.pid"),
:config => File.expand_path("config.ru"),
:SSLEnable => true
:ssl => true,
"ssl-verify" => true,
"ssl-key-file" => File.expand_path("ssllocal/server.key"),
"ssl-cert-file" => File.expand_path("ssllocal/server.crt")
})
end
end
end
require 'rails/commands'
Nota: para aquellos que podrían estar preguntándose, he creado un directorio 'ssllocal' fuera de mi directorio raíz de la aplicación, y ahí es donde guardo las llaves SSL y los CERT.