我的目标是使用glassfish gem 在Windows服务器上部署一个简单的rails应用程序。
我可以毫不费力地将glassfish gem用于常规http,但是我现在需要添加SSL安全性,而且我找不到任何关于如何在glassfish gem中启用 https 的链接。
有没有人成功设置glassfish gem以支持SSL?
是否有其他方法可以在Windows上通过SSL提供rails应用程序而无需安装任何其他软件(例如IIS,Glassfish,jBoss)?
答案 0 :(得分:0)
编辑(对于downvote的人)
有些问题有更深层次的问题可以解决。在这种情况下需要一个带有ssl的jruby启用的Web服务器。如果您的意见与我自己的帖子有所不同,请请不要选择真正解决某人的问题的答案。或者更糟糕的是 - 没有评论就投票。谢谢。
结束编辑
我使用jetty-rails gem并在其中编码SSL支持。
如果你也选择使用jetty-rails,你可以按照说明添加SSL
确保使用jetty-rails版本0.6,因为当前0.8.1是错误的
我敢肯定,玻璃鱼也可以以类似的方式使用SSL
我选择了码头,因为它似乎更快(启动)更小,更容易改变src。
if config[:ssl] and config[:ssl] == true
if config[:keystore] =~ /^\\/ # starts with slash => absolute dir
keystore = config[:keystore]
else # assume keystore is in cofig dir
keystore = @config[:base] + '/config/' + config[:keystore]
end
if not config[:truststore].nil? # have separate truststore
if config[:truststore] =~ /^\\/ # starts with slash => absolute dir
truststore = config[:truststore]
else # assume keystore is in cofig dir
truststore = @config[:base] + '/config/' + config[:truststore]
end
else # trustore == keystore
truststore = keystore
end
security_connector = Jetty::Security::SslSocketConnector.new
security_connector.set_acceptors(config[:acceptor_size])
security_connector.port = config[:port]
security_connector.confidential_port = config[:port]
security_connector.keystore = keystore
security_connector.password = config[:password]
security_connector.key_password = config[:key_password].nil? ? config[:password] : config[:key_password]
security_connector.truststore = truststore
security_connector.trust_password = config[:trust_pasword].nil? ? config[:password] : config[:trust_pasword]
@server.add_connector(security_connector)
else
connector = Jetty::SelectChannelConnector.new
connector.set_acceptors(config[:acceptor_size])
connector.port = config[:port]
connector.confidential_port = config[:security_port] if config[:security_port]
@server.add_connector(connector)
end
见这里:http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
# Config
:port: 3000
:jruby_min_runtimes: <%= config[:environment] == 'production' ? 3 : 1 %>
:jruby_max_runtimes: <%= config[:environment] == 'production' ? 6 : 2 %>
:thread_pool_max: 40
:thread_pool_min: 4
:acceptor_size: 10
# Security
:ssl: true
:keystore: keystore.jks
:password: your_pass
# :key_password: your_pass # if different
# :truststore: truststore.jks # if different
# :trust_pasword: your_pass # if different
jruby -S jetty_rails -c config/jetty_rails.yml