SSL_connect Возвращено SYSCALL = 5 errno = 0 состояние = сервер чтения SSLv2 / v3 привет A - PullRequest
11 голосов
/ 18 августа 2010

У меня есть клиент ruby, который подключается к серверу обмена с использованием IMAP и SSL. Я использую библиотеку Ruby Net :: IMAP (которая использует openssl под крышками) для подключения. Он работал хорошо в течение нескольких месяцев. Администратор сервера обмена установил новый сертификат от godaddy, и теперь я получаю эту ошибку:

 SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

Кто-нибудь знает, что означает эта ошибка? (Я пробовал гуглить)

Я подозреваю, что есть проблема с новым сертификатом, вызывающим это, но я не знаю, как ее устранить.

Также я знаю, что вы можете отключить проверку сертификата при использовании NET: HTTP, выполнив:

 http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl?

но я не могу понять, как это сделать, используя NET: IMAP. Я хочу отключить это, чтобы увидеть, если это проблема.

Что касается кода, который я использую: Я использую это (или очень близко к этому) http://github.com/look/fetcher/blob/master/lib/fetcher/imap.rb

Я пытался изменить на: @connection = Net :: IMAP.new (@server, @port, @ssl, nil, false)

Вот трассировка стека

 checking emails on: Tue Aug 17 20:48:01 +0000 2010
 rake aborted!
 SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
 /usr/lib/ruby/1.8/net/imap.rb:904:in `connect'
 /usr/lib/ruby/1.8/net/imap.rb:904:in `initialize' 
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `new'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `establish_connection'
 /usr/lib/ruby/gems/1.8/gems/system_timer-1.0/lib/system_timer.rb:28:in `timeout_after'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:33:in `establish_connection'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/base.rb:31:in `fetch'

Ответы [ 3 ]

3 голосов
/ 29 октября 2012

Я получил эту ошибку при попытке подключиться к DynamoDB с рельсами 3, используя настройки по умолчанию.Решением было добавить

config.port = 443

к

dynamico_db.rb

инициализатора

На момент написания этой статьи это исправлениев неоткрытой ветви драгоценного камня.

1 голос
/ 18 августа 2010

Что ж, получается, что основной причиной этого был неверный обмен ms.Я хотел бы узнать больше об ошибках ssl и о том, как их устранить, но я просто не получил много информации об этом.

Я попытался просто устранить это с помощью open ssl, fyi, вы можете сделать: OpenSSL> s_client -connect myserver: 993

Когда он был сломан, я получил эту ошибку: CONNECTED (00000003) 26831: ошибка: 140790E5: Подпрограммы SSL: SSL23_WRITE: сбой рукопожатия ssl: s23_lib.c: 188:

Как только мы исправили, я получил сообщение с сертификатом и рукопожатием и т. Д.

Вот что сказал мой администратор по обмену: «Я просто пошел по протоколу IMAP и перешел на вкладку доступа. Затем сертификатыКнопка. Оттуда я решил заменить сертификат и выбрал новый сертификат ".

0 голосов
/ 18 августа 2010

В соответствии с документацией вы можете установить для проверки SSL значение none при создании экземпляра Net: IMAP

foo = Net::IMAP.new(host, port, true, nil, false)

Вы также можете указать локальную копию сертификата CA с помощьюcerts вариант.

примечание: я сам не пробовал ...

...