Как решить проблему «сбой проверки сертификата» в Windows? - PullRequest
73 голосов
/ 19 апреля 2011

Я пытаюсь использовать печатку для OAuth для сервисов Google.И получите эту ошибку:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

После следующих вопросов:

Кажется, что решение состоит в том, чтобы исправить ca_path или установить VERIFY_NONE для SSL.

Опубликованное исправление ca_path работает только в Linux (установка порта), а исправление для VERIFY_NONE, по-видимому, для Фарадея.

Есть ли решение для Windows /печатка жемчужина?

Ответы [ 15 ]

187 голосов
/ 21 апреля 2013

На самом деле лучший способ, который я нашел, чтобы решить эту проблему в Windows для самого Ruby, а не только для одного драгоценного камня, это сделать следующее:

  1. Загрузить https://curl.haxx.se/ca/cacert.pem в c: \ railsinstaller\ cacert.pem.Убедитесь, что вы сохранили его как файл .pem, а не как текстовый файл.
  2. Перейдите к компьютеру -> Расширенные настройки -> Переменные среды
  3. Создайте новую системную переменную:

    Переменная: SSL_CERT_FILE Значение: C: \ RailsInstaller \ cacert.pem

  4. Закройте все ваши командные строки, включая командную строку сервера Rails и т. д.

  5. Запустите новое приглашение ruby ​​irb и попробуйтеследующее:

    $irb>require 'open-uri'
    $irb>open('https://www.gmail.com')
    

Теперь все должно работать нормально.

27 голосов
/ 12 ноября 2011

Решение для Windows, которое я собрал из нескольких разных ответов:

  1. Загрузите https://curl.haxx.se/ca/cacert.pem и поместите его в YOUR_APP / lib / assets (илигде угодно)
  2. В config / initializers / omniauth.rb :

     #config/initializers/omniauth.rb
    Rails.application.config.middleware.use OmniAuth::Builder do
      provider :facebook, CUSTOMER_KEY, CUSTOMER_SECRET, {client_options: {ssl: {ca_file: Rails.root.join('lib/assets/cacert.pem').to_s}}}
    end
    
  3. Очевидно, перезапуститеваш сервер.

Сноски: Вы можете вырезать много ненужных сертификатов в файле cacert.pem, чтобы уменьшитьразмер.Если вам нужно только это решение для разработки, вы можете сохранить файл за пределами вашего проекта и сделать строку if Rails.env.development? _provider со строкой client_options hash_ else _provider без client_options hash_ end

20 голосов
/ 22 мая 2016

После долгих поисков и потерянного времени я нашел очень простое решение для решения этой проблемы в Ruby с Windows.

Два простых шага:

  1. В командевведите: C:\gem install certified

  2. В вашем rb файле добавьте: require 'certified'

Вот и все.

9 голосов
/ 02 января 2015

Обновление инфраструктуры управления пакетами rubygems решило эту проблему для меня в Windows 7.

https://rubygems.org/pages/download

gem update --system          # may need to be administrator or root
8 голосов
/ 21 мая 2011

да, я установил файл omniouth.rb в папке инициализаторов на это:

provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:client_options => {:ssl => {:verify => false}}}

и теперь, похоже, работает нормально. Но не используйте это для производства .

5 голосов
/ 28 октября 2016

Использование http: // URL вместо https: // сделает это проще для вас

Измените источник гема на http://rubygems.org/, используя следующую строку команды в командной строке ruby

gem sources -a http://rubygems.org/
2 голосов
/ 22 октября 2016

Перейдите на страницу загрузки rubygems-update: https://rubygems.org/gems/rubygems-update

Нажмите на ссылку Скачать, и вы скачаете файл с именем rubygems-update-2.6.7.gem.В командной строке перейдите в каталог, в который вы скачали .gem-файл, и введите:

gem install rubygems-update-2.6.7.gem

(или имя файла, если это более новая версия)

Затем введите:

update_rubygems

Вы можете проверить, что оно обновлено:

gem --version
1 голос
/ 04 января 2017

У меня была эта ошибка, когда я пытался настроить rails 5 на машине с Windows, оказалось, что мне пришлось обновить версию rubygem до 2.6.7, и тогда она заработала.

шаг 1 скачать рубингем снизу

https://rubygems.org/downloads/rubygems-update-2.6.7.gem

шаг 2 - установить, указав на загруженные рубины

gem install --local C:\rubygems-update-2.6.7.gem

шаг 3 - проверьте, установлена ​​ли новая версия 2.6.7

gem --version

шаг 4 - теперь безопасно удалите гем rubygems-update

gem uninstall rubygems-update -x

шаг 5 попытался установить рельсы 5 снова

gem install rails --version 5.0.0

работал как шарм!

Я получил информацию от: http://guides.rubygems.org/ssl-certificate-update/#installing-using-update-packages

1 голос
/ 20 декабря 2014

Добавление в решение DevDude, но с использованием Windows Powershell:

Загрузка http://curl.haxx.se/ca/cacert.pem в c: \ railsinstaller \ cacert.pem

На PowerShellподсказка:

$env:SSL_CERT_FILE = 'c:\RailsInstaller\cacert.pem'

После этого я смог запустить gem update успешно

Примечание: вы можете просто определить эту переменную среды в своем профиле notepad $profile

0 голосов
/ 06 марта 2017

Я также столкнулся с этой проблемой, когда устанавливал более старые версии ruby. Когда я установил последнюю версию Ruby, эта проблема исчезла. Таким образом, в основном сертификат SSL необходимо обновить.

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