Как работать с SSL-сертификатом в Selenium

SSL-сертификат в Selenium

SSL (Secure Sockets Layer) — это стандартный протокол безопасности для установления безопасного соединения между сервером и клиентом, которым является браузер.

Сертификат SSL (Secure Socket Layer) обеспечивает безопасное преобразование данных между сервером и клиентским приложением с использованием надежного стандарта шифрования или цифровой подписи. Необходимо установить сертификат SSL или сертификат подписи кода.

Преимущества SSL-сертификата

Использование сертификата SSL имеет ряд преимуществ, например:

  • Можно повысить доверие своих пользователей и клиентов, чтобы ускорить рост бизнеса.
  • Эти сертификаты помогают защитить онлайн-транзакции и конфиденциальную информацию клиентов, такую ​​как данные кредитной/дебетовой карты и т. д.
  • Сертификат подписи имеет тенденцию получать максимальное количество загрузок и хорошие отзывы пользователей.

Веб-сайты, защищенные SSL, начинаются с https://и вы увидите значок замка или зеленую адресную строку, если соединение установлено надежно.

Например, если вы хотите совершить какую-либо транзакцию через интернет-банкинг или приобрести Мобильный телефон по телефону через сайт электронной коммерции, такой как Flipkart или Amazon.

Что происходит между веб-браузером и сервером

  1. Браузер пытается подключиться к веб-сайту, защищенному с помощью SSL. Браузер запрашивает веб-сервер, чтобы идентифицировать себя
  2. Сервер отправляет браузеру копию своего SSL-сертификата.
  3. Браузер проверяет, является ли сертификат SSL подлинным. Если да, он отправляет сообщение на сервер
  4. Сервер отправляет обратно подтверждение с цифровой подписью для начала сеанса с шифрованием SSL.
  5. Зашифрованные данные передаются между сервером и браузером.

При этом вам необходимо передавать конфиденциальную информацию, такую ​​как номера кредитных карт или учетные данные для входа, и она должна передаваться безопасно, чтобы ее нельзя было взломать или перехватить.

Например

  1. Тип https://netbanking.hdfcbank.com/netbanking/ .
  2. Нажмите Enter.
  3. Вы увидите зеленую адресную строку в браузере, как показано ниже: -

Преимущества SSL-сертификата

Как сертификат SSL создает безопасное соединение

SSL-сертификат создает безопасное соединение

  1. Браузер отправляет HTTPS-запрос на сервер.
  2. Теперь Сервер должен предоставить браузеру некоторую идентификацию, чтобы доказать, что ему доверяют. Это можно сделать, отправив копию своего SSL-сертификата в браузер.
  3. Каждый браузер имеет свой собственный список доверенных центров сертификации. Браузер сверяет корень сертификата со своим списком доверенных центров сертификации и проверяет, не истек ли срок действия сертификата, не был ли он отозван, а также что общее имя действительно для веб-сайта, к которому он подключается.
  4. Если браузер доверяет сертификату, между сервером и браузером создается зашифрованный сеанс.
  5. Сервер и браузер могут отправлять зашифрованные сообщения

Типы сертификатов SSL

Браузер и сервер используют механизм сертификата SSL для установления безопасного соединения. Данное подключение предполагает проверку трех типов сертификатов.

  • Корень
  • Intermediate
  • Сертификат сервера

Процесс получения SSL-сертификата

Процесс получения SSL-сертификата включает в себя следующие шаги:

  1. Сначала вы должны создать запрос CSR (создание запроса на подпись сертификата).
  2. Запрос CSR создает файл данных CSR, который отправляется эмитенту сертификата SSL, известному как CA (центр сертификации).
  3. Центр сертификации использует файлы данных CSR для создания сертификата SSL для вашего сервера.
  4. После получения SSL-сертификата вам необходимо установить его на свой сервер.
  5. Также необходимо установить промежуточный сертификат, который связывает ваш SSL-сертификат с корневым сертификатом CA.

На изображении ниже представлены все три сертификата. Корневой, промежуточный и серверный сертификат.

Процесс получения SSL-сертификата

Как проверяются SSL-сертификаты

SSL работает посредством комбинации программ и процедур шифрования/дешифрования, которые существуют на компьютере веб-сервера и в браузере веб-сервера.

Сертификат SSL в основном содержит информацию ниже.

  1. Тема, которая является личностью владельца сайта.
  2. Информация о достоверности — открытый и закрытый ключ.

Частный и открытый ключ — это два уникально связанных криптографических ключа (числа). Все, что зашифровано открытым ключом, может быть расшифровано только закрытым ключом.

SSL-сертификаты проверены

Если безопасное соединение не установлено между сервером и клиентом из-за сертификата, будет проявляться следующая ошибка сертификата SSL.

Типы ошибок SSL-сертификата

Предположим, вы вводите https-запрос в браузере и получаете сообщение типа «Это соединение ненадежно» или «Сертификат безопасности сайта не является доверенным» в зависимости от используемого вами браузера. Тогда такая ошибка связана с ошибкой сертификата SSL.

Теперь, если браузер не может установить защищенное соединение с запрошенным сертификатом, браузер выдаст исключение «Недоверенное соединение», как показано ниже, и попросит пользователя предпринять соответствующие действия.

Типы ошибок, которые вы, скорее всего, увидите из-за сертификата в разных браузерах, могут быть примерно такими:

  1. ОгоньFox - Это соединение ненадежно
  1. Google Chrome -Безопасность этого сайта не заслуживает доверия
  1. Интернет Эксплорер (IE) – Этот сертификат безопасности, представленный на этом веб-сайте, не был доверен доверенному центру сертификации (CA).

Типы ошибок SSL-сертификата

Как обработать ошибку сертификата 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, вы можете справиться с этой ситуацией двумя способами:

  1. При этом вы нажмете на ссылку «Продолжайте посещать этот сайт (не рекомендуется)». Далее мы увидим, как обрабатывать ошибку SSL в IE.

Обратите внимание на ошибку сертификата SSL в браузере IE. Вы найдете ссылку «Продолжить работу с этим веб-сайтом (не рекомендуется)». Эта ссылка имеет идентификатор «переопределить ссылку». Вы можете просмотреть идентификатор в режиме HTML, используя F12.

Обработка ошибок SSL-сертификата в IE

Нажмите на ссылку, используя метод driver.navigate() с JavaСценарий как показано ниже: -

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
  1. Второй метод очень похож на код обработки 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 Веб-драйвер.