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

Содержание:

Anonim

Что такое SSL-сертификат?

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

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

В этом руководстве вы узнаете:

  • Что такое SSL-сертификат?
  • Преимущества SSL-сертификата
  • Как SSL-сертификат создает безопасное соединение
  • Типы SSL-сертификатов
  • Как проверяются сертификаты SSL
  • Типы ошибок сертификатов SSL
  • Как справиться с ошибкой сертификата SSL с помощью Selenium Webdriver
  • Обработка ошибок сертификата SSL в Firefox
  • Обработка ошибок сертификата SSL в Chrome
  • Обработка ошибок сертификата SSL в IE

Преимущества 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-сертификат создает безопасное соединение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. FireFox - это ненадежное соединение
  1. Google Chrome - этому сайту не доверяют
  1. Internet Explorer (IE) - этому сертификату безопасности, представленному на этом веб-сайте, не доверял доверенный центр сертификации (CA).

Как справиться с ошибкой сертификата SSL с помощью Selenium Webdriver

Предположим, мы написали несколько тестовых сценариев и во время выполнения сценария попали в ситуацию как «Недоверенное соединение», указанную выше, тогда как мы обрабатываем исключение исключительно посредством автоматизации.

В таком случае мы должны настроить наш скрипт таким образом, чтобы он сам позаботился об исключении SSL.

Скрипты необходимо изменить в соответствии с типом используемого нами браузера. Эти при желании возможности появляются на картинке.

Требуемые возможности используются для настройки экземпляра драйвера Selenium Webdriver. С помощью желаемых возможностей можно настроить все экземпляры драйверов, такие как ChromeDriver, FirefoxDriver и Internet Explorer.

На данный момент у нас нет какого-либо конкретного URL-адреса для создания вышеуказанного сценария, но я предоставляю шаги, которые мы можем добавить в сценарий Selenium для обработки вышеуказанной ситуации «Недоверенное соединение».

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

Для обработки ошибки сертификата SSL в Firefox нам необходимо использовать желаемые возможности Selenium Webdriver и выполнить следующие шаги.

Шаг 1) : Сначала нам нужно создать новый профиль Firefox, скажем « myProfile ». Вы можете обратиться к Google, чтобы узнать «Как создать» профиль Firefox. Это просто и легко.

Шаг 2) : Теперь откройте myProfile в скрипте, как показано ниже, и создайте объект FirefoxProfile.

ProfilesIni prof = новый ProfilesIni ()FirefoxProfile ffProfile = prof.getProfile ("myProfile")

Шаг 3) : Теперь нам нужно установить свойства « setAcceptUntrustedCertificates » и « setAssumeUntrustedCertificateIssuer » в профиле Fire Fox.

ffProfile.setAcceptUntrustedCertificates (истина)ffProfile.setAssumeUntrustedCertificateIssuer (ложь)

Шаг 4) : Теперь используйте профиль FireFox в объекте драйвера FireFox.

Драйвер WebDriver = новый FirefoxDriver (ffProfile) 

Примечание . «SetAcceptUntrustedCertificates» и «setAssumeUntrustedCertificateIssuer » - это возможности для обработки ошибок сертификата в веб-браузерах.

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

Для обработки ошибки SSL в Chrome нам нужно использовать желаемые возможности Selenium Webdriver. Приведенный ниже код поможет принять весь сертификат SSL в Chrome, и пользователь не получит никаких ошибок, связанных с сертификатом SSL, используя этот код.

Нам нужно создать экземпляр класса DesiredCapabilities, как показано ниже: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, истина)Драйвер WebDriver = новый ChromeDriver (handlSSLErr);

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

В отличие от обработки SSL-сертификатов в браузере Chrome и Firefox, в IE вам, возможно, придется обрабатывать это с помощью javascript.

Чтобы обработать сертификат SSL в IE, вы можете справиться с этой ситуацией двумя способами:

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

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

Щелкните ссылку, используя метод driver.navigate () с JavaScript, как показано ниже: -

driver.navigate () .to ("javascript: document.getElementById ('overridelink'). click ()");
  1. Второй метод очень похож на хромированный код обработки SSL.
Возможности DesiredCapabilities = новые DesiredCapabilities ();features.setCapability (CapabilityType.ACCEPT_SSL_CERTS, истина);System.setProperty ("webdriver.ie.driver", "IEDriverServer.exe");Драйвер WebDriver = новый InternetExplorerDriver (возможности);

Приведенный выше код поможет справиться с ошибкой сертификата SSL в IE.

Резюме:

  • SSL (Secure Sockets Layer) - стандартный протокол безопасности для установления безопасного соединения между сервером и клиентом.
  • Браузер и сервер используют механизм сертификата SSL, чтобы установить безопасное соединение.
  • SSL работает через комбинацию программ и процедур шифрования / дешифрования, которые существуют на компьютере веб-сервера и браузере веб-сервера.
  • Если безопасное соединение не установлено между сервером и клиентом из-за сертификата, возникает ошибка сертификата SSL.
  • Необходимо настроить наш скрипт таким образом, чтобы он сам позаботился об исключении / ошибке SSL через драйвер Selenium Web.