Как работать с SSL-сертификатом в Selenium
SSL-сертификат в Selenium
SSL (Secure Sockets Layer) — это стандартный протокол безопасности для установления безопасного соединения между сервером и клиентом, которым является браузер.
Сертификат SSL (Secure Socket Layer) обеспечивает безопасное преобразование данных между сервером и клиентским приложением с использованием надежного стандарта шифрования или цифровой подписи. Необходимо установить сертификат SSL или сертификат подписи кода.
Преимущества SSL-сертификата
Использование сертификата SSL имеет ряд преимуществ, например:
- Можно повысить доверие своих пользователей и клиентов, чтобы ускорить рост бизнеса.
- Эти сертификаты помогают защитить онлайн-транзакции и конфиденциальную информацию клиентов, такую как данные кредитной/дебетовой карты и т. д.
- Сертификат подписи имеет тенденцию получать максимальное количество загрузок и хорошие отзывы пользователей.
Веб-сайты, защищенные SSL, начинаются с https://и вы увидите значок замка или зеленую адресную строку, если соединение установлено надежно.
Например, если вы хотите совершить какую-либо транзакцию через интернет-банкинг или приобрести Мобильный телефон по телефону через сайт электронной коммерции, такой как Flipkart или Amazon.
Что происходит между веб-браузером и сервером
- Браузер пытается подключиться к веб-сайту, защищенному с помощью SSL. Браузер запрашивает веб-сервер, чтобы идентифицировать себя
- Сервер отправляет браузеру копию своего SSL-сертификата.
- Браузер проверяет, является ли сертификат SSL подлинным. Если да, он отправляет сообщение на сервер
- Сервер отправляет обратно подтверждение с цифровой подписью для начала сеанса с шифрованием SSL.
- Зашифрованные данные передаются между сервером и браузером.
При этом вам необходимо передавать конфиденциальную информацию, такую как номера кредитных карт или учетные данные для входа, и она должна передаваться безопасно, чтобы ее нельзя было взломать или перехватить.
Например
- Тип https://netbanking.hdfcbank.com/netbanking/ .
- Нажмите Enter.
- Вы увидите зеленую адресную строку в браузере, как показано ниже: -
Как сертификат SSL создает безопасное соединение
- Браузер отправляет HTTPS-запрос на сервер.
- Теперь Сервер должен предоставить браузеру некоторую идентификацию, чтобы доказать, что ему доверяют. Это можно сделать, отправив копию своего SSL-сертификата в браузер.
- Каждый браузер имеет свой собственный список доверенных центров сертификации. Браузер сверяет корень сертификата со своим списком доверенных центров сертификации и проверяет, не истек ли срок действия сертификата, не был ли он отозван, а также что общее имя действительно для веб-сайта, к которому он подключается.
- Если браузер доверяет сертификату, между сервером и браузером создается зашифрованный сеанс.
- Сервер и браузер могут отправлять зашифрованные сообщения
Типы сертификатов SSL
Браузер и сервер используют механизм сертификата SSL для установления безопасного соединения. Данное подключение предполагает проверку трех типов сертификатов.
- Корень
- Intermediate
- Сертификат сервера
Процесс получения SSL-сертификата
Процесс получения SSL-сертификата включает в себя следующие шаги:
- Сначала вы должны создать запрос CSR (создание запроса на подпись сертификата).
- Запрос CSR создает файл данных CSR, который отправляется эмитенту сертификата SSL, известному как CA (центр сертификации).
- Центр сертификации использует файлы данных CSR для создания сертификата SSL для вашего сервера.
- После получения SSL-сертификата вам необходимо установить его на свой сервер.
- Также необходимо установить промежуточный сертификат, который связывает ваш SSL-сертификат с корневым сертификатом CA.
На изображении ниже представлены все три сертификата. Корневой, промежуточный и серверный сертификат.
Как проверяются SSL-сертификаты
SSL работает посредством комбинации программ и процедур шифрования/дешифрования, которые существуют на компьютере веб-сервера и в браузере веб-сервера.
Сертификат SSL в основном содержит информацию ниже.
- Тема, которая является личностью владельца сайта.
- Информация о достоверности — открытый и закрытый ключ.
Частный и открытый ключ — это два уникально связанных криптографических ключа (числа). Все, что зашифровано открытым ключом, может быть расшифровано только закрытым ключом.
Если безопасное соединение не установлено между сервером и клиентом из-за сертификата, будет проявляться следующая ошибка сертификата SSL.
Типы ошибок SSL-сертификата
Предположим, вы вводите https-запрос в браузере и получаете сообщение типа «Это соединение ненадежно» или «Сертификат безопасности сайта не является доверенным» в зависимости от используемого вами браузера. Тогда такая ошибка связана с ошибкой сертификата SSL.
Теперь, если браузер не может установить защищенное соединение с запрошенным сертификатом, браузер выдаст исключение «Недоверенное соединение», как показано ниже, и попросит пользователя предпринять соответствующие действия.
Типы ошибок, которые вы, скорее всего, увидите из-за сертификата в разных браузерах, могут быть примерно такими:
- ОгоньFox - Это соединение ненадежно
- Google Chrome -Безопасность этого сайта не заслуживает доверия
- Интернет Эксплорер (IE) – Этот сертификат безопасности, представленный на этом веб-сайте, не был доверен доверенному центру сертификации (CA).
Как обработать ошибку сертификата SSL с помощью Selenium Вебдрайвер
Предположим, мы написали несколько тестовых сценариев и во время их выполнения мы столкнулись с ситуацией, описанной выше как «Недоверенное соединение», и как нам обработать это исключение исключительно посредством автоматизации.
В таком случае нам необходимо настроить наш скрипт таким образом, чтобы он сам позаботился об исключении SSL.
Сценарии необходимо изменить в соответствии с типом экземпляра браузера, который мы используем. Это когда желаемые возможности появляются на картинке.
Desired Capabilities используется для настройки экземпляра драйвера Selenium Вебдрайвер. С помощью желаемых возможностей можно настроить все экземпляры драйверов, такие как ChromeDriver, FirefoxДрайвер и Internet Explorer.
На данный момент у нас нет конкретного URL-адреса для создания описанного выше сценария, но я предлагаю шаги, которые мы можем добавить в Selenium Скрипт для обработки описанной выше ситуации «Недоверенное соединение».
Обработка ошибок SSL-сертификата в Firefox
Для обработки ошибки сертификата SSL в Firefox, нам нужно использовать желаемые возможности Selenium Webdriver и выполните следующие шаги.
Шаг 1) Сначала нам нужно создать новый профиль Firefox, скажем «мой профайл«. Вы можете обратиться к Google, чтобы узнать «Как создать» профиль Firefox. Это просто и легко.
Шаг 2) Теперь откройте myProfile в сценарии, как показано ниже, и создайте FirefoxОбъект профиля.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Шаг 3) Теперь нам нужно установить «setAcceptUntrustedCertificates(Основной ключ) и setAssumeUntrustedCertificateIssuer» недвижимость в Огне Fox профиль.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Шаг 4) Теперь используйте Огонь.Fox профиль в огнеFox объект водителя.
WebDriver driver = new FirefoxDriver (ffProfile)
Внимание: «setAcceptUntrustedCertificates» и «setAssumeUntrustedCertificateIssuer» — это возможности обработки ошибок сертификатов в веб-браузерах.
Обработка ошибок SSL-сертификата в Chrome
Для обработки ошибок SSL в Chrome нам необходимо использовать желаемые возможности Selenium Вебдрайвер. Приведенный ниже код поможет принять все сертификаты SSL в Chrome, и пользователь не получит никаких ошибок, связанных с сертификатом SSL, используя этот код.
Нам нужно создать экземпляр класса DesiredCapabilities, как показано ниже:
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
Обработка ошибок SSL-сертификата в IE
В отличие от обработки SSL-сертификатов в браузере Chrome и Firefox, в IE вам, возможно, придется обрабатывать это с помощью JavaScript.
Чтобы обработать сертификат SSL в IE, вы можете справиться с этой ситуацией двумя способами:
- При этом вы нажмете на ссылку «Продолжайте посещать этот сайт (не рекомендуется)». Далее мы увидим, как обрабатывать ошибку SSL в IE.
Обратите внимание на ошибку сертификата SSL в браузере IE. Вы найдете ссылку «Продолжить работу с этим веб-сайтом (не рекомендуется)». Эта ссылка имеет идентификатор «переопределить ссылку». Вы можете просмотреть идентификатор в режиме HTML, используя F12.
Нажмите на ссылку, используя метод driver.navigate() с JavaСценарий как показано ниже: -
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- Второй метод очень похож на код обработки SSL в Chrome.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Приведенный выше код поможет обработать ошибку сертификата SSL в IE.
Итого
- SSL (Secure Sockets Layer) — стандартный протокол безопасности для установления безопасного соединения между сервером и клиентом.
- Браузер и сервер используют механизм сертификата SSL для установления безопасного соединения.
- SSL работает посредством комбинации программ и процедур шифрования/дешифрования, которые существуют на компьютере веб-сервера и в браузере веб-сервера.
- Если безопасное соединение не установлено между сервером и клиентом из-за сертификата SSL, произойдет ошибка сертификата.
- Необходимо настроить наш скрипт таким образом, чтобы он сам позаботился об исключении/ошибке SSL через Selenium Веб-драйвер.