#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