Капибара стейк SSL

#ssl #capybara

#ssl #капибара

Вопрос:

Я использую Steak Capybara для приемочного тестирования и rack-ssl для принудительного использования SSL, теперь, когда я попытался запустить набор тестов, я получил сообщение об ошибке

(Код ошибки: ssl_error_rx_record_too_long)

Есть идеи, как заставить это работать?

Комментарии:

1. смогли ли вы решить эту проблему?

Ответ №1:

Capybara запускает обычный сервер приложений (Mongrel / Webrick), который не поддерживает SSL. Чтобы получить SSL-среду на вашем локальном компьютере, вам нужно будет настроить что-то вроде nginx или Apache с mod_ssl и mod_proxy для приема SSL-соединений и обычных HTTP-запросов ПРОКСИ-сервера к вашему серверу разработки.

Затем вы можете запустить его в настройках вашей тестовой среды и в своих тестах перейти к этому SSL-серверу, а не к самому серверу приложений.

Предостережения:

Для настройки «ssl-сервера» вам нужно будет создать самозаверяющий SSL-сертификат. Браузер не доверяет ему по умолчанию, пока вы не добавите его в список исключений. AFAIR Драйвер Capybara selenium каждый раз создает новый профиль Firefox, поэтому он будет отклонять ваш SSL-сертификат. Возможно, вам придется приобрести «настоящий» сертификат.

Capybara запускает свой внутренний сервер на случайном доступном порту, вам нужно будет его изменить. Я помню, что писал что-то вроде:

 Capybara::Server.class_eval do
  def find_available_port
     @port = 3000
  end
end