Мое приложение использует драгоценный камень OAuth2 (0.1.1) для подключения к Facebook и драгоценный камень ActiveMerchant (1.12.0) для подключения к PayPal. В текущем дистрибутиве Rails / Ruby (3.0.5, 1.9.2) оба этих гема выдают следующий OpenSSL :: SSL :: SSLError при использовании:
- SSL_connect возвращено = 1 errno = 0
состояние = SSLv3 прочитанный сертификат сервера
B: сбой проверки сертификата
Я немного покопался и нашел два патча. Первый включает в себя подключение к моей папке инициализаторов как «faraday.rb» (http://bit.ly/hZqNwQ). OAuth2 (Facebook) сторона вещей работает с этим патчем. Однако код ActiveMerchant (PayPal) по-прежнему выдает ту же ошибку SSL_connect.
Вторым патчем, который я пробовал (безуспешно), является гем 'Always_verify_ssl_certificates' (http://bit.ly/dXmuUh). Я сделал следующие вещи: (1) гем 'Always_verify_ssl_certificates' в Gemfile (2) требует 'Always_verify_ssl_certificates' файл ApplicationController, однако OAuth2 (Facebook) и ActiveMerchant (PayPal) генерируют следующую ошибку TypeError:
- неверный аргумент (NilClass)! (ожидаемый
вид OpenSSL :: SSL :: SSLContext)
Ссылки на мой код Facebook OAuth2 AuthorizeController и мой ActiveMerchant PayPal (PaymentsController в том виде, в каком они сейчас находятся, приведены в комментариях ниже. Это после того, как вы следовали руководству OAuth2 2010 года от Майкла Блея и руководству Cody Fauser ActiveMerchant 2008 года. оценил! Я очень запутался в этом пункте.