编辑
(对于投反对票的人)
有些问题的深层次问题是可以解决的。在这种情况下,需要一个支持JRuby的带有SSL的Web服务器。如果你的意见与我的不同,请写你自己的帖子。
拜托
不要轻视那个答案
真的解决了某人的问题
. 或者更糟的是,投反对票,没有评论。谢谢您。
结束编辑
我使用jetty rails gem并在其中编码ssl suport。
如果您也选择使用Jetty Rails,则可以按照以下说明添加SSL。
确保使用0.6版的Jetty Rails,因为当前0.8.1有问题。
我相信Glassfish也可以以类似的方式使用SSL。
我选择了码头,因为它看起来更快(启动)更小,更容易改变SRC。
jetty_rails-0.6/lib/jetty_rails/server.rb+32
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
如何生成证书存储(keystore.jks)
请参见此处:
http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
Rails_根/config/jetty_rails.yml
# 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