Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby on Linux中使用Net::HTTP发出sslv3警报非法参数_Ruby_Ssl_Https_Openssl - Fatal编程技术网

在Ruby on Linux中使用Net::HTTP发出sslv3警报非法参数

在Ruby on Linux中使用Net::HTTP发出sslv3警报非法参数,ruby,ssl,https,openssl,Ruby,Ssl,Https,Openssl,我正在尝试使用远程系统进行用户身份验证。这段代码在MacOSX上运行时得到响应,但在我的计算机上失败: def create uri = URI.parse('https://ourclient.example.com/') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request

我正在尝试使用远程系统进行用户身份验证。这段代码在MacOSX上运行时得到响应,但在我的计算机上失败:

  def create
    uri = URI.parse('https://ourclient.example.com/')
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE

    request = Net::HTTP::Post.new('/login.jsp')
    request.set_form_data({'login_name' => params[:login], 'password' => params[:password]})
    response = http.request(request)
    puts "Response BODY: #{response.body.inspect}"
  end
关闭“验证”可以消除Mac上的警告。在我的计算机上,http.request引发此异常:

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert illegal parameter):
  app/controllers/sessions_controller.rb:16:in `create'
我在没有Rails的情况下使用IRB也会得到同样的行为。昨天我彻底安装了Fedora14,安装了所需的开发工具和库。我使用的是Ruby 1.9.2-p180和Rails 3.0.4。我认为我的库可能配置错误(我的Fedora12已经升级了几次),但现在这是一个新的安装

远程系统可能是微软的IIS,但我不确定。也许我可以使用较旧的SSL协议,但我的Google fu找不到这个咒语

如果您能提供有关解决此问题的任何提示,我将不胜感激。谢谢


Chris

如何在服务器上创建ssl证书?自签名还是ca签名?
如果删除“无验证”,您会收到哪个错误?

请使用Mechanize gem

gem install mechanize
试一试

require 'mechanize'
page = Mechanize.new{|a| a.ssl_version, a.verify_mode = 'SSLv3', OpenSSL::SSL::VERIFY_NONE}.get "**YOUR HTTPS LINK HERE**"

我正在检查服务器ssl设置。我得到的警告是:警告:此SSL会话中将不会验证对等证书该证书是使用Oracle Wallet Manager创建的,然后由签名机构Verisign签名。我想问题出在SSL证书中,或者CN不正确。你试过另一个吗?我已经针对有效的ssl证书测试了您的代码,没有收到任何警告或错误(甚至删除了verify_none)。我在macosx上。我没有访问服务器的权限。谢谢你尝试一下。