【问题标题】:Rails SSL while running only Puma on EC2 AWS instance在 EC2 AWS 实例上仅运行 Puma 时的 Rails SSL
【发布时间】:2019-07-09 03:04:21
【问题描述】:

规格: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 以单一模式启动... * 版本 3.2.0 (ruby 2.1.9-p490),代号:Spring Is A Heliocentric Viewpoint * 最小线程:0,最大线程:16 * 环境:生产 * 监听 tcp://ssl://0.0.0.0:9292?key=~/evslideshow.key&cert=~/e3b162f57ea48f91.crt&verify_mode=peer&ca=~/gd_bundle-g2-g1.crt:80 退出 > /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 有更简单的修复方法,那么我将使用它。

【问题讨论】:

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


    【解决方案1】:

    通过阅读 puma 的 Github 页面上的一些 issue pages 找到了解决方案。显然我们必须直接打电话给 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多