Недопустимый параметр оповещения sslv3 с использованием Net :: HTTP в Ruby в Linux - PullRequest
1 голос
/ 27 февраля 2011

Я пытаюсь использовать удаленную систему для аутентификации пользователя.Этот фрагмент кода получает ответ, когда я запускаю его на 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'

Я получаю такое же поведение, используя IRB без Rails.Вчера я сделал чистую установку Fedora 14, установил необходимые инструменты разработки и библиотеки.Я использую Ruby 1.9.2-p180 и Rails 3.0.4.Я думал, что мои библиотеки неправильно настроены (у меня была Fedora 12, которая была обновлена ​​несколько раз), но теперь это новая установка.

Удаленная система, вероятно, IIS от Microsoft, но я неуверен в этом.Возможно, я могу использовать более старый протокол SSL, но мой Google-фу не может найти заклинание.

Буду признателен за любые советы по решению этой проблемы.Спасибо,

Крис

Ответы [ 2 ]

0 голосов
/ 19 ноября 2012

используйте для этого механизм Mechanize

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**"
0 голосов
/ 28 февраля 2011

как был создан сертификат ssl на сервере? самоподписанный или подписанный? какую ошибку вы получите, если удалите VERIFY_NONE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...