2013-06-20 16 views
7

można używać cienkierubymine Cienkie z opcji SSL

bundle exec thin start --ssl --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 

to działa w konsoli/terminala, doskonale

Ale gdy próbuję dołączyć te opcje w rubymine pod „Run/Debug Konfiguracje” -> "Argumenty Edit Script" pojawia się:

/Users/jan/.rbenv/versions/1.9.3-p392/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/jan/RubymineProjects/myapp/script/rails server thin -b 0.0.0.0 -p 3000 -e development --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 
/Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:33:in `parse!': invalid option: --ssl-verify (OptionParser::InvalidOption) 
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:283:in `parse_options' 
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:180:in `options' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:54:in `set_environment' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:42:in `initialize' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `new' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>' 
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `require' 
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `<top (required)>' 
from -e:1:in `load' 
from -e:1:in `<main>' 

Proces zakończony z kodem wyjścia 1 Czy ktoś może pomóc nam/mi?

wielkie dzięki!

+0

Nie można plik klucza i certyfikatu SSL jest określony w pliku konfiguracyjnym jest cienki (YAML)? –

Odpowiedz

1

opcję --ssl-verify nie należy stosować

4

użyć poniższy sposób

require 'rack' 

SERVER_KEY = File.expand_path('../../ssl-cert/host.key', __FILE__) 
SERVER_PEM = File.expand_path('../../ssl-cert/host.crt', __FILE__) 

# Thin SSL workaround 
module Rack 
    module Handler 
    class Thin 
     def self.run(app, options={}) 
     app = Rack::Chunked.new(Rack::ContentLength.new(app)) 
     server = ::Thin::Server.new(options[:Host] || '0.0.0.0', 
            options[:Port] || 3000, 
            app) 
     server.ssl = true 
     server.ssl_options = { 
      :private_key_file => SERVER_KEY, 
      :cert_chain_file => SERVER_PEM 
     } 
     yield server if block_given? 
     server.start 
     end 
    end 
    end 
end 
# Workaround end 

APP_PATH = File.expand_path('../../config/application', __FILE__) 
require File.expand_path('../../config/boot', __FILE__) 
require 'rails/commands' 
+0

Z [tego komentarza Githuba] (https://gist.github.com/masone/5955f4cc0b4d4ef372db#gistcomment-1448440), jeśli chcesz, aby Thin używał jego wbudowanego autopodpisanego certyfikatu, możesz przekazać 'nil' do': private_key_file' i ': cert_chain_file'. – Aaroninus

0

Najwyraźniej to może być faktycznie ściągnął dodając Procfile i majster gem, jak w tym zestaw instrukcji:

Using Rails, Thin and SSL in RubyMine: The solution!

Zasadniczo, można dodać majster do Gemfile:

gem 'foreman' 

następnie utworzyć Procfile (link literówki to) w katalogu głównym zawierającym ten:

web: thin start --ssl 

lub wiążą się z 0.0.0.0 jako rubymine zwykle robi:

web: thin start -a 0.0.0.0 -p 3001 --ssl 

Nie trzeba określić lokalizację moich plików ssl, ale jeśli chciał byłoby:

web: thin start -a 0.0.0.0 -p 3001 --ssl --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 

Nie polecam używania --ssl-verify, ponieważ to nie działa dla mnie.

Ostatnio, w rubymine, utworzyć nową konfigurację Ruby z następujących cech:

  • Ruby skrypt: powinna to być ścieżka do brygadzisty wykonywalnego, np: ~/.rvm/gems/[email protected]/gems/foreman-0.82.0/bin/foreman argumenty
  • Script : start
  • Katalog roboczy: Katalog główny projektu, np.~/Sites/appname

W zakładce Szuflada zaznacz jedyne pole wyboru, aby korzystać z bundle exec podczas jego uruchamiania.

Ostatnio, w zakładce dzienników, dodać nowy plik dziennika wskazując ~/Sites/appname/logs/development.log