Vik*_*ngR 18 ssl ruby-on-rails localhost webrick ruby-on-rails-4
我有一个Rails应用程序,我想在SharePoint 2013上部署.
为了实现某种身份验证方法,我需要WEBrick server提供服务ssl https并收听传入的https port https://localhost:3001.不幸的是,我在配置服务器方面不是很有经验.
我只找到了一些旧版Rails版本的过时教程,似乎不再适合这项工作了.
任何提示都非常感谢.
Hug*_*ugo 25
我知道你要求WEBrick,请原谅我提出别的建议,但我真的建议你使用Thin ruby web服务器(更快更轻),这样你也可以启动SSL并满足你的要求:
$ thin start --ssl -p 3001
Run Code Online (Sandbox Code Playgroud)
只是不要忘记在你的Gemfile中添加gem'lema ' ;-)
这是我的解决方案,它兼容Rails 3和4.
在顶部添加以下代码bin/rails:
require 'rubygems'
require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'
module Rails
class Server < ::Rack::Server
def default_options
ssl_default_options = {
:Port => 443,
:SSLEnable => true,
:SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
:SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open(File.expand_path('../../config/cert/server_development.key', __FILE__)).read),
:SSLCertificate => OpenSSL::X509::Certificate.new(File.open(File.expand_path('../../config/cert/server_development.crt', __FILE__)).read),
:SSLCertName => [['CN', WEBrick::Utils::getservername]]
}
ENV['RAILS_SSL'] ? super.merge(ssl_default_options) : super
end
end
end
Run Code Online (Sandbox Code Playgroud)
您显然需要生成自签名证书或购买一个.
然后当你想从命令行使用启动WebRick时RAILS_SSL=true rails s.通常您需要sudo侦听端口443,因此您可能希望附加-p 3001更改端口.
| 归档时间: |
|
| 查看次数: |
13584 次 |
| 最近记录: |