Я пытаюсь аутентифицировать пользователя через Facebook или Twitter, заставлять их заполнять свою информацию, а затем нажать "Сохранить" (таким образом создав запись пользователя). Я получаю ошибку OpenSSL на этом последнем шаге - после нажатия save. Это происходит при создании метода создания объявлений RegentationsController #.
Итак, я получаю эту ошибку в моем приложении Rails, размещенном на Heroku:
2012-07-28T18:25:13+00:00 app[web.1]: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed)
Я видел множество решений, ни одна из них не работает. Вот несколько вещей, которые я пробовал:
1) Установка драгоценного камня certified
2) Модернизация драгоценного камня Heroku до v2.30, повторное нажатие
3) Это:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, TWITTER_KEY, TWITTER_SECRET, {:client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:scope => "publish_actions,user_location,email", :client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
end
Кажется, что одна проблема может заключаться в том, что этот файл cert фактически не существует - я видел его в нескольких местах, и похоже, что это путь по умолчанию к файлу ca_cert для Heroku, но я мог бы быть неправильно.
Как ни странно, это происходит после Я уже прошел аутентификацию через FB/Twitter и пытаюсь создать учетную запись пользователя. Почему это так, и как я могу решить/отладить это? Искренне смущен.
Обновление: Я добавил эту строку в инициализатор Omniauth, и теперь он "работает". Таким образом, я поставил диагноз проблемы с Omniauth. Тем не менее, я бы хотел, чтобы все еще была проверка SSL... это явно оставляет разрыв в безопасности.
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE