ruby-on-rails - 在 EC2 AWS 实例上仅运行 Puma 时使用 Rails SSL

标签 ruby-on-rails amazon-web-services ssl amazon-ec2

规范:Rails 4.2.4、Ruby 2.1.9、运行 puma、生产模式下的 EC2 实例

我有一个 SSL 证书,我想在我的服务器上安装,但是使用像这样的技术不会产生任何结果

rails s puma -b 'ssl://0.0.0.0:9292?key=path_to_key.key&cert=path_to_cert.crt&verify_mode=none&ca=path_to_root_bundle.crt'

How to configure Rails with Puma to use SSL?

还有

RAILS_ENV=production rvmsudo -E rails s puma -b "ssl://0.0.0.0:9292?key=${KEY_PATH}&cert=${CERT_PATH}&verify_mode=peer&ca=${CERT_BUNDLE_PATH}" -p 80 

我得到的不是正常运行的服务器

Puma starting in single mode... * Version 3.2.0 (ruby 2.1.9-p490), codename: Spring Is A Heliocentric Viewpoint * Min threads: 0, max threads: 16 * Environment: production * Listening on tcp://ssl://0.0.0.0:9292?key=~/evslideshow.key&cert=~/e3b162f57ea48f91.crt&verify_mode=peer&ca=~/gd_bundle-g2-g1.crt:80 Exiting > /home/ec2-user/.rvm/gems/ruby-2.1.9@slideshow/gems/puma-3.2.0/lib/puma/binder.rb:240:in `initialize': getaddrinfo: Name or service not known (SocketError)

现在我的脑子里正在考虑不同的选择。我只是错过了在这里使用 puma 的一些基本方面吗? puma 文档非常害怕,这就是我在这里问的原因。或者我可以使用 Nginx,因为互联网上似乎有很多关于使用 SSL 证书进行设置的文档。

如果有针对 puma 的更简单的修复程序,那么我将只使用它。

最佳答案

通过阅读一些 issue pages 找到了解决方案在 puma 的 Github 页面上。显然我们必须直接调用 puma,而不是通过 rails server,尽管在​​ old stackoverflow answer 中是这样说的

工作代码是

RAILS_ENV=production rvmsudo -E puma -d -b "ssl://0.0.0.0:443?key=${KEY_PATH}&       
cert=${CERT_PATH}&verify_mode=peer&ca=${CERT_BUNDLE_PATH}" -p 80 

确保在您的生产配置文件中也打开 config.force_ssl。

关于ruby-on-rails - 在 EC2 AWS 实例上仅运行 Puma 时使用 Rails SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54701383/

相关文章:

ruby-on-rails - Ruby on Rails - 捆绑安装期间出错

python - 更改 AWS Spot 实例的最高出价

node.js - Linux 上有效 SSL 证书的 Nodejs SSL 错误,但 Windows 上没有

amazon-web-services - 专用链接与 VPC 对等互连

amazon-web-services - AWS .ebextension 脚本未执行

apache - 使用 .htaccess 为多个域重定向到 HTTPS

c++ - OpenSSL C API : How to resume TLS connection after program exec()?

ruby-on-rails - ActionMailer 不在开发 Rails 4 中发送邮件

ruby-on-rails - 如何限制用户只能编辑他们的记录

javascript - 未捕获的语法错误 : Unexpected token ILLEGAL on Toggle