gpt4 book ai didi

ruby-on-rails-3 - 将排除选项传递给 Rack::SSL

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:17 25 4
gpt4 key购买 nike

遵循指导 here ,针对 Rails 3.2.x 进行了更新,我希望能够将 Rack::SSL 配置为仅在包含 https:// 前缀时才使用 SSL 过滤器:

config.force_ssl = true
config.ssl_options = { :exclude => proc { |env| puts 'here? ' + env.to_s; env['HTTPS'] != 'on' } }

但是,https 有效,其中 http 失败并出现以下错误:

[2012-10-29 15:37:03] ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=SSLv2/v3 read client hello A: http request
/Users/user/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/ssl-internal.rb:164:in `accept'

插入到 lambda 中的诊断代码没有被执行。如何在 Rails 3.2.x 中配置 Rack:SSL 以响应 HTTP 和 HTTPS?

Rails 3.2.8,WEBrick 使用自签名证书配置为 SSL。

最佳答案

由于某些原因,自 2012 年 5 月起,在 options 散列中使用 exclude 选项的功能已被删除:https://github.com/rails/rails/pull/5515

我看到的错误是转移注意力的错误。 exclude 被忽略,http:// 请求在 ActionDispatch::SSL 中被重定向到 https://。由于协议(protocol)不匹配,OpenSSL 被阻塞了(我假设)。

解决方案是按照建议使用rack-ssl gem here .这与 ActionDispatch::SSL 基本相同,除了 exclude 选项仍然受到尊重。

关于ruby-on-rails-3 - 将排除选项传递给 Rack::SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com