Tag: https

在所有rails帮助程序中将协议更改为https

Rails 3.1+我希望我的url帮助程序使用https协议,而不必在我调用的每个帮助程序中指定它。 搜索后我发现了各种各样的方法但没有工作,例如: ROUTES_PROTOCOL = (ENV[“RAILS_ENV”] =~ /development/ ? ‘http://’ : ‘https://’) scope :protocol => ROUTES_PROTOCOL, :path => “/app” do 如何才能做到这一点?

在瘦服务器上的rails应用程序中启用https

我有一个在heroku上运行瘦服务器的rails应用程序。 它目前使用http。 我想使用https进行bot开发和生产。 我从哪里开始这样做。 我看过这个railscast ,展示了如何使用POW服务器。 我不想使用POW服务器,我想使用瘦服务器。 我也看了一下这里 :但是在这里他们假设你有一个开放的ssl insatlled。 我还没有找到任何显示如何从头开始在瘦服务器上运行https的地方。 我想知道是否有人有任何建议。 谢谢

rubyscas CAS over ssl,site over non-ssl

我正在尝试确定当我将rubycas本身运行在https上时,我正在查看多少安全风险,但我的实际站点在http下运行。 我面临这个问题的原因是网站部署在heroku上,这意味着ssl要么真的很贵,要么真的很痛苦。 除了登录详细信息,我还将用户卷(授权)传递给每个站点,然后存储在会话中。 非常感谢任何输入。

通过SSL发布UTF-8时,HEROKU上的“EOFError:文件结束”

我对heroku有一个奇怪的错误。 为了重现它,我必须在请求正文中使用任何UTF-8字符进行大(超过几KB)HTTPS POST。 这是一个例子: require “net/https” require “uri” #Accutally I’ve ecountered this bug while posting to another server url = URI.parse(“https://api.heroku.com/myapps”) #It’s Ukrainian ‘oiced velar plosive G’ letter payload = “ґ”*10000 request = Net::HTTP::Post.new(url.path) request.body = payload http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.read_timeout = 500 http.start {|http| http.request request } 在本地机器的irb上运行这样的脚本给了我: # ……这是预期的,但是在heroku雪松上,在’heroku […]

如何针对某些路径在Rails 4中有选择地启用SSL?

如何为给定路径关闭SSL HTTPS? 我看到为某些资源操作启用SSL,但这是为单个路径启用HTTPS。 我的配置有 config.force_ssl = true 但是,当我显示一个包含iframe的页面并嵌入外部源时 <iframe src='http://www. 然后它甚至没有出现(Chrome),因为它是混合内容。 所以我想为具有iframe的单一路由禁用SSL。 (我真的想根据内容打开和关闭它。) 我尝试将其添加到我的routes.rb get ‘frame’, :constraints => { :protocol => ‘http’ } 但是这给出了一个错误http://127.0.0.1:3000/posts/136/frame No route matches [GET] “/posts/136/frame” 即使路线出现了 frame_post GET /posts/:id/frame(.:format) posts#frame {:protocol=>”http”} 我还看到了Rails 3.1中特定路由的强制SSL并尝试过 gem ‘rack-ssl-enforcer’ # Gemfile config.middleware.use Rack::SslEnforcer, :except => [ /\/frame$/ ], :strict => true # application.rb 但它仍然总是重定向到https。 我也试过了 […]

使用Ruby实现HTTPS证书/ pubkey固定

我有自己的HTTPS服务,我正在与另一个Ruby应用程序交谈。 我想在我的app repo中的已知时间点保存它的公钥证书,并将服务发送给我的公钥与存储的副本进行比较。 要在外部服务器上安装证书,我可能需要将其转换为某种格式,因此服务器发送的文件不会相同。 我想对那个特定的公钥进行各种修改。 我需要使用OpenSSL比较哪些证书字段来validation从服务收到的PK是否与从服务器收到的PK相同? 我想CN和签名必须至少匹配。 还有什么需要检查才能知道我所拥有的公共证书与我收到的证书完全一致(即证书是否相同)? 也许OSSL有一个内置的设施吗?

Net :: HTTP中的服务器名称指示支持?

我正在尝试让Ruby的Net::HTTP实现与SNI一起使用。 mail.google.com和gmail.com都位于相同的IP地址上,因此当通过SSL连接时,Google服务器需要知道要使用的证书。 默认情况下,它会返回mail.google.com证书,如果您尝试实施WebFinger,则会出现问题。 WebFinger要求您检索https://gmail.com/.well-known/host-meta以获取LRDD信息,但是,出于安全原因,validationSSL证书信息至关重要。 由于Google在这种情况下提供默认的mail.google.com证书,因此SSL post_connection_check失败。 这里正确的解决方案是为Net::HTTP启用服务器名称指示,但我不清楚如何使用OpenSSL的Ruby绑定。 其他人有想法吗? 您应该能够通过运行来查看问题: require ‘open-uri’ open(‘https://gmail.com/.well-known/host-meta’) { |f| f.read } 我还创建了一个使用早期版本的curl和OpenSSL来展示问题的要点: https://gist.github.com/7936ef38787092a22897

Ruby中的HTTPS URL服务器证书

如何使用Net :: HTTP或HTTPClient Ruby lib获取https服务器证书?

HTTP POST(未知协议)上的SSL错误

尝试通过SSL连接到Imgur API会给我一个错误。 这是代码和错误: API_URI = URI.parse(‘https://api.imgur.com’) API_PUBLIC_KEY = ‘Client-ID –‘ ENDPOINTS = { :image => ‘/3/image’, :gallery => ‘/3/gallery’ } # Public: Upload an image # # args – The image path for the image to upload # def upload(image_path) http = Net::HTTP.new(API_URI.host) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE params = {‘image’ => File.open(image_path)} request […]

如何打印有关NET:HTTPRequest的信息以进行调试?

我是来自Java的Ruby的新手。 我正在尝试创建一个http get请求,我得到一个400的http响应代码。我通过http调用的服务非常特别,我很确定我的请求不完全正确。 在我执行head请求(下面)之后“查看” req对象是有帮助的,以便仔细检查正在发送的request_headers是否是我认为我正在发送的内容。 有没有办法打印出req对象? req = Net::HTTP.new(url.host, url.port) req.use_ssl = true res = req.head(pathWithScope, request_headers) code = res.code.to_i puts “Response code: #{code}” 我试过这个: puts “Request Debug: #{req.inspect}”但它只打印出来: #