如何在JRUBY上为SSL配置PUMA

时间:2012-12-30 21:06:00

标签: ruby-on-rails-3 jruby puma

我有一个jruby rails应用程序,可以正常使用没有SSL的Puma。根据Puma的wiki,我必须提供证书文件和密钥文件。我从GoDaddy获得了我的证书文件,因为我在osx上,我使用Keychain应用程序从证书中提取了私钥。我使用以下命令启动Puma:

bundle exec puma -b 'ssl://0.0.0.0:3000?key=file://Users/me/key.p12&cert=file://Users/me/server.x.ca.crt' -t 3:8

之后我得到了一堆关于重新定义的SSL常量的警告,比如这个

/Users/me/.rvm/gems/jruby-1.7.1/gems/jruby-openssl-0.8.2/lib/shared/jruby-openssl.rb:16 warning: already initialized constant OPENSSL_VERSION_NUMBER

然后这条消息:

  彪马1.6.3开始......
  *最小螺纹:3,最大螺纹:8
  *环境:发展
  IOError:sun.net.ftp.FtpProtocolException:欢迎信息:
   在org / jruby / RubyFile.java初始化:333
  在org / jruby / RubyIO.java上打开:1179
          在org / jruby / RubyKernel.java中打开:333
          在org / jruby / RubyIO.java上阅读:3611
          在org / jruby / RubyIO.java上阅读:3708
           运行于/Users/me/.rvm/gems/jruby-1.7.1/gems/puma-1.6.3-java/lib/puma/cli.rb:359
          每个在org / jruby / RubyArray.java:1612
           运行于/Users/me/.rvm/gems/jruby-1.7.1/gems/puma-1.6.3-java/lib/puma/cli.rb:314
        (root)atUsers/me/.rvm/gems/jruby-1.7.1/gems/puma-1.6.3-java/bin/puma:10
          在org / jruby / RubyKernel.java上加载:1046
        (root)atUsers/me/.rvm/gems/jruby-1.7.1/bin/puma:1
          eval at org / jruby / RubyKernel.java:1066
        (root)atUsers/me/.rvm/gems/jruby-1.7.1/bin/ruby_noexec_wrapper:14

Puma退出了。该应用程序在我的开发机器上运行。我没有使用任何FTP,所以我对此错误消息感到困惑。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

似乎是Puma 1.6.x on Jruby do not work with SSL(参见页面底部的最后一个Evan Phoenix的评论)。我现在使用Apache作为反向代理在Puma面前处理SSL。