Учебники

47) Обработка ошибок сертификата SSL

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

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 в Selenium

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

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

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

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

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

  • корень
  • промежуточный
  • Сертификат сервера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как обработать ошибку сертификата 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 = new ProfilesIni()				
FirefoxProfile ffProfile= prof.getProfile ("myProfile")

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

ffProfile.setAcceptUntrustedCertificates(true) 
ffProfile.setAssumeUntrustedCertificateIssuer(false)

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

WebDriver driver = new FirefoxDriver (ffProfile) 		

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

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

Для обработки ошибки SSL в Chrome нам нужно использовать нужные возможности Selenium Webdriver. Приведенный ниже код поможет принять все 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 в Selenium

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

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