[RUBY-ON-RAILS] 어떻게 레일에 사용 SSL에에 WEBrick을 구성해야합니까?
RUBY-ON-RAILS어떻게 레일에 사용 SSL에에 WEBrick을 구성해야합니까?
레일 3 이전에는 SSL 매개 변수에 추가에 WEBrick의 HTTPS 버전을 사용하기 위해 서버 명령을 말할 수있는 스크립트 / 서버 파일을 수정할 수 있습니다. 이제 그 모든 스크립트가 사라 것을, 사람이 레일 3 또는 4 일에이를 얻는 방법을 알고 있나요?
해결법
-
==============================
1.레일 4의 스크립트 디렉토리가 사라지고 있지만, bin 디렉토리에 남아 있습니다. 당신은 빈을 편집하여에 WEBrick SSL 인증서와 협력을 얻을 수 / 스크립트를 레일. rbenv와 함께 설치, 레일 4 루비 2.1.1에서 테스트.
레일 4의 스크립트 디렉토리가 사라지고 있지만, bin 디렉토리에 남아 있습니다. 당신은 빈을 편집하여에 WEBrick SSL 인증서와 협력을 얻을 수 / 스크립트를 레일. rbenv와 함께 설치, 레일 4 루비 2.1.1에서 테스트.
이것의 대부분은이 블로그 게시물이 스택 오버플로 질문에서입니다.
#!/usr/bin/env ruby require 'rails/commands/server' require 'rack' require 'webrick' require 'webrick/https' if ENV['SSL'] == "true" module Rails class Server < ::Rack::Server def default_options super.merge({ :Port => 3001, :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, :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, :SSLPrivateKey => OpenSSL::PKey::RSA.new( File.open("certs/server.key").read), :SSLCertificate => OpenSSL::X509::Certificate.new( File.open("certs/server.crt").read), :SSLCertName => [["CN", WEBrick::Utils::getservername]], }) end end end end APP_PATH = File.expand_path('../../config/application', __FILE__) require_relative '../config/boot' require 'rails/commands'
응용 프로그램 디렉토리에서 레일 서버를 시작하면 SSL 환경 변수가 true로 설정 될 때 SSL 이제 서버를 사용할 시작 작동하고, 기본 환경 변수가 생략 될 때 설정이 유지됩니다 레일.
$ SSL=true rails s => Booting WEBrick => Rails 4.1.0 application starting in development on https://0.0.0.0:3001 => Run `rails server -h` for more startup options => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option) => Ctrl-C to shutdown server [2014-04-24 22:59:10] INFO WEBrick 1.3.1 [2014-04-24 22:59:10] INFO ruby 2.1.1 (2014-02-24) [x86_64-darwin13.0] [2014-04-24 22:59:10] INFO Certificate: Data: ...
당신이 미리 생성 된 인증서를 사용하지 않는 경우에 WEBrick의 경우 Utils를 사용할 수 있습니다 :: create_self_signed_cert을,이 답변에 명시된 바와 같이 :
구성에 WEBrick이 자동으로 생성 자체 서명 된 SSL / HTTPS 인증서를 사용하는
-
==============================
2.이 밖 박스 HTTPS / SSL 설정을위한 편리한 옵션을 제공하기 때문에 레일즈 앱 HTTPS / SSL을 사용하기에 WEBrick을 설정하려고하는 대신, 대신 얇은 서버를 사용하여 전환 시도 할 수 있습니다.
이 밖 박스 HTTPS / SSL 설정을위한 편리한 옵션을 제공하기 때문에 레일즈 앱 HTTPS / SSL을 사용하기에 WEBrick을 설정하려고하는 대신, 대신 얇은 서버를 사용하여 전환 시도 할 수 있습니다.
먼저, Gemfile에 보석으로 씬을 추가 :
gem 'thin'
그런 다음 명령 줄에서 설치 번들 실행합니다.
당신은 당신이 간단하게 실행, 해당 지역의 개발 환경에서 HTTPS / SSL을 사용하여 레일 응용 프로그램을 테스트하려면
thin start --ssl
당신이 검증하고 확보하기 위해 SSL / HTTPS 위해서는 인증 기관에서 연결을 유효한 SSL 인증서를 사용할 필요가 있기 때문에 나는이 생산 환경에 적합하지 않은 것을 강조하고있다.
당신이 얇은에 전달할 수있는 다른 옵션도 있습니다. 당신은 얇은 --help를 실행하여의 전체 목록을 얻을 수 있습니다. 예를 들어, 나는 백그라운드 프로세스로 씬을 daemonizing뿐만 아니라, 내 자신의 IP 주소와 포트를 지정하려면 :
thin start --ssl \ --address <ip-address> \ --port <port> \ --daemonize
당신은 SSL 인증서를 사용하는 씬을 말하고 싶은 경우 (예를 들어, 당신은 유효한 인증 기관에서 획득 한 것을 하나), 당신은이 옵션을 사용할 수 있습니다 :
thin start --ssl \ --ssl-cert-file <path-to-public-certificate> \ --ssl-key-file <path-to-private-key>
from https://stackoverflow.com/questions/3640993/how-do-you-configure-webrick-to-use-ssl-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] will_paginate와 루비의 배열을 Paginating (0) | 2020.02.12 |
---|---|
[RUBY-ON-RAILS] 레일 원숭이 패치 3 (0) | 2020.02.12 |
[RUBY-ON-RAILS] 레일의 파괴에 I '검증'을 어떻게 (0) | 2020.02.12 |
[RUBY-ON-RAILS] 레일 - 사용 유형 열을 STI없이? (0) | 2020.02.12 |
[RUBY-ON-RAILS] 랙에 :: 세션 : 쿠키 경고를 제공하는 비밀 옵션 없다? (0) | 2020.02.12 |