Не удается установить https-соединение с рубином

Я пробовал более 5 разных версий ruby, в настоящее время использую 1.9.2-p194. Я получаю эту ошибку:

Connection reset by peer - SSL_connect (Errno::ECONNRESET)

Я перекомпилировал, попробовал rvm, rbenv и даже apt-get ruby... это работает:

openssl ssl_client -connect google.com:443

Но это не так:

require "net/https"
require "uri"

uri = URI.parse("https://google.com/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

http.start do |agent|
  p agent.get(uri.path).read_body
end

У кого-нибудь есть идеи, как я могу лучше отладить это? Я использую Убунту 12.04. Локально, где это работает, я использую Ubuntu 10.10. Однако openssl ssl_client работает на обеих ОС, поэтому я могу только предположить, что это проблема ruby.

РЕДАКТИРОВАТЬ:

Заработало с использованием rbenv 1.9.2-p320, но та же версия ruby ​​не работала под rvm. Я был бы признателен за любую информацию.


person Damien Roche    schedule 04.09.2012    source источник
comment
@mpapis правильно, только что обновил свой вопрос. Спасибо.   -  person Damien Roche    schedule 04.09.2012


Ответы (2)


Я полагаю, вам нужно переустановить (перекомпилировать) Ruby после установки OpenSSL с помощью:

rvm reinstall 1.9.3
person Dmitriy Budnik    schedule 05.09.2012

Ради тех, у кого такие же проблемы. Я обнаружил, что моя проблема была в том, что у меня был ssl: true в config/ldap.yml (если он у вас есть, убедитесь, что ваш сервер ldap использует ssl). Если это поможет вам выбрать это в качестве ответа для тех, кто придет дальше.

person salah-1    schedule 20.03.2013