Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails 4中配置WEBrick以使用SSL_Ruby On Rails_Ssl_Ruby On Rails 4_Localhost_Webrick - Fatal编程技术网

Ruby on rails 在Rails 4中配置WEBrick以使用SSL

Ruby on rails 在Rails 4中配置WEBrick以使用SSL,ruby-on-rails,ssl,ruby-on-rails-4,localhost,webrick,Ruby On Rails,Ssl,Ruby On Rails 4,Localhost,Webrick,我想在SharePoint 2013上部署一个Rails应用程序 为了实现某种身份验证方法,我需要WEBrick服务器为sslhttps提供服务,并在端口https://localhost:3001。不幸的是,我对配置服务器不是很有经验 我只找到了一些旧版本Rails的过时教程,这些教程似乎不再适用了 非常感谢任何提示。我知道您要求WEBrick,请原谅我提出其他建议,但我真的建议您使用ruby web server(更快、更轻),这样您也可以启动SSL并轻松满足您的要求: $ thin sta

我想在SharePoint 2013上部署一个Rails应用程序

为了实现某种身份验证方法,我需要
WEBrick服务器
ssl
https
提供服务,并在
端口
https://localhost:3001
。不幸的是,我对配置服务器不是很有经验

我只找到了一些旧版本Rails的过时教程,这些教程似乎不再适用了


非常感谢任何提示。

我知道您要求WEBrick,请原谅我提出其他建议,但我真的建议您使用ruby web server(更快、更轻),这样您也可以启动SSL并轻松满足您的要求:

$ thin start --ssl -p 3001

只是别忘了在Gemfile中添加gem'thin';-)

这是我的解决方案,它与Rails 3和Rails 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
需要“rubygems”
需要“rails/commands/server”
需要“机架”
需要“webrick”
需要“webrick/https”
模块导轨
类服务器<::机架::服务器
def default_选项
ssl\u默认\u选项={
:端口=>443,
:SSLEnable=>true,
:SSLVerifyClient=>OpenSSL::SSL::VERIFY\u NONE,
:SSLPrivateKey=>OpenSSL::PKey::RSA.new(File.open(File.expand_path('../../config/cert/server_development.key',__文件_)).read),
:SSLCertificate=>OpenSSL::X509::Certificate.new(File.open(File.expand_path('../../config/cert/server_development.crt',____文件)).read),
:SSLCertName=>[['CN',WEBrick::Utils::getservername]]
}
环境['RAILS_SSL']?super.merge(ssl\u默认\u选项):super
结束
结束
结束
显然,您需要生成一个自签名证书或购买一个证书


然后,当您想从命令行启动WebRick时,请使用
RAILS\u SSL=true RAILS s
。通常您需要
sudo
来监听端口443,因此您可能需要附加
-p 3001
来更改端口。

的可能副本。投票结束,因为该解决方案与该问题中已接受的解决方案基本相同。不确定另一个是否真的应该复制这个新的。@Cupcake是Rails 3的,Rails 4没有使用script\Rails文件。@Chloe你说不出来,因为你还没有足够的声誉,但与链接的博客文章基本相同。事实上,这篇博文中有很多抄袭,无论是有意抄袭还是其他抄袭,不仅是在这个问题上,也在StackOverflow周围的其他人身上。@Chloe,例如,你看。@Chloe你想做什么?@Chloe我实际上使用了Thin,我对它没有任何问题。很多人用瘦的。为什么您将其描述为“artisan”?如果我错了,请纠正我的错误,但是如果您想将SSL与瘦应用程序一起使用,您不也需要添加SSL证书吗?另请参见。它似乎包含自己的:
CN:openca.steamheat.net
我必须指出,仅仅使用
--ssl
当然不适合生产环境。如果您想在生产中使用它,您必须另外告诉Thin使用来自证书颁发机构的有效SSL证书。Thin正在给我
Uncaught ReferenceError:jQuery未定义jQuery\u ujs.js?body=1:398
当我用Rails 4.1重新加载页面时,浏览器控制台中出现错误。