Як працювати з сертифікатом SSL в Selenium
⚡ Розумний підсумок
Помилки SSL-сертифіката зупиняють Selenium тестувати момент, коли браузер відхиляє ненадійний або прострочений сертифікат, тому кожен скрипт WebDriver потребує специфічної для браузера можливості, яка приймає сертифікат і дозволяє автоматизації продовжувати роботу.
Сертифікат SSL в Selenium
SSL (Secure Sockets Layer) — це стандартний протокол безпеки для встановлення безпечного з’єднання між сервером і клієнтом, яким є браузер.
SSL-сертифікат захищає дані, що передаються між сервером і клієнтською програмою, за допомогою надійного шифрування та цифрового підпису. Власник сайту встановлює або SSL-сертифікат, або сертифікат підпису коду.
Переваги сертифіката SSL
Існує ряд переваг використання сертифіката SSL, наприклад,
- Можна підвищити довіру користувачів і клієнтів, щоб прискорити зростання бізнесу
- Ці сертифікати допомагають захистити онлайн-транзакції та конфіденційну інформацію клієнтів, як-от дані кредитної/дебетової картки тощо.
- Сертифікат підпису, як правило, отримує максимальну кількість завантажень і хороші відгуки від користувачів.
Веб-сайти, захищені SSL, починаються з https:// і ви можете побачити значок замка або зелений адресний рядок, якщо з’єднання надійно встановлено.
Наприклад, якщо ви хочете здійснити певну транзакцію через мережевий банкінг або придбати a Mobile телефон через сайт електронної комерції, наприклад Flipkart або Amazon.
Що відбувається між веб-браузером і сервером
- Браузер намагається підключитися до веб-сайту, захищеного SSL. Браузер просить веб-сервер ідентифікувати себе
- Сервер надсилає браузеру копію свого SSL-сертифікату
- Браузер перевіряє, чи справжній сертифікат SSL. Якщо так, він надсилає повідомлення на сервер
- Сервер надсилає підтвердження з цифровим підписом для початку сеансу, зашифрованого SSL
- Зашифровані дані передаються між сервером і браузером
Номери карток та облікові дані для входу передаються протягом цього сеансу, тому обмін має залишатися зашифрованим від початку до кінця і не може бути перехоплений.
Наприклад, замок та адресний рядок нижче підтверджують, що сертифікат прийнято.
- тип https://netbanking.hdfcbank.com/netbanking/ .
- Натисніть Enter.
- Ви побачите зелений адресний рядок у браузері, як показано нижче:-
Як сертифікат SSL створює безпечне з’єднання
Діаграма нижче tracрукостискання, а наступні пронумеровані кроки пояснюють кожен обмін.
- браузер надсилає запит HTTPS на сервер.
- Тепер сервер повинен надати певну ідентифікацію браузеру, щоб підтвердити, що йому довіряють. Це можна зробити, надіславши копію його сертифіката SSL у браузер.
- Кожен браузер має власний список довірених ЦС. Браузер перевіряє корінь сертифіката зі своїм списком довірених центрів сертифікації та перевіряє, чи сертифікат не прострочений, невідкликаний і чи загальна назва дійсна для веб-сайту, до якого він підключається.
- Якщо браузер довіряє сертифікату, між сервером і браузером створюється зашифрований сеанс.
- Сервер і браузер можуть надсилати зашифровані повідомлення
Типи сертифікатів SSL
Браузер і сервер використовують механізм сертифіката SSL для встановлення безпечного з’єднання. Це підключення передбачає перевірку трьох типів сертифікатів.
- Корінь
- Проміжний
- Сертифікат сервера
Процес отримання SSL-сертифікату
Процес отримання сертифіката SSL включає наступні кроки:-
- Спочатку ви повинні створити запит CSR (створити запит на підписання сертифіката).
- Запит CSR створює файл даних CSR, який надсилається до видавця сертифіката SSL, відомого як CA (Центр сертифікації).
- ЦС використовує файли даних CSR для створення сертифіката SSL для вашого сервера.
- Після отримання сертифіката SSL ви повинні встановити його на своєму сервері.
- Також потрібно встановити проміжний сертифікат, який зв’язує ваш сертифікат SSL із кореневим сертифікатом ЦС.
На зображенні нижче представлені всі три сертифікати- Кореневий, проміжний і серверний сертифікати.
Як перевіряються сертифікати SSL
SSL працює за допомогою комбінації програм і процедур шифрування/дешифрування, які існують на комп’ютері веб-сервера та в браузері веб-сервера.
Сертифікат SSL містить наведену нижче інформацію.
- Суб’єкт, який є власником сайту.
- Інформація про дійсність - відкритий і закритий ключ.
Закритий та відкритий ключі – це два унікально пов’язані криптографічні ключі (числа). Все, що зашифровано відкритим ключем, може бути розшифровано лише закритим ключем. Браузер показує ці поля під час перевірки сертифіката, як показано нижче.
Якщо безпечне з’єднання між сервером і клієнтом не встановлено через сертифікат, з’явиться наступна помилка сертифіката SSL.
Типи помилок сертифіката SSL
Припустимо, ви вводите https-запит, а браузер відповідає: «Це з’єднання ненадійне» або «Сертифікат безпеки сайту ненадійний». Браузеру не вдалося встановити захищене з’єднання з наданим сертифікатом, тому він зупиняється та просить користувача вжити відповідних заходів.
Типи помилок, які ви можете побачити через сертифікат у різних браузерах, можуть бути приблизно такими
- ПожежаFox - Це з'єднання викликає підозри
- Google Chrome – Безпека цього сайту не є надійною
- Internet Explorer (IE) – Довірений центр сертифікації (CA) не довіряє цьому сертифікату безпеки, представленому цим веб-сайтом.
На скріншоті нижче показано проміжну сторінку, яку створює ненадійний сертифікат.
Як усунути помилку сертифіката SSL за допомогою Selenium Веб-драйвер
Припустимо тестовий скрипт потрапляє на сторінку «Ненадійне з’єднання» вище. Скрипт потрібно налаштувати так, щоб він самостійно обробляв виняток SSL, виключно через автоматизація.
Зміна залежить від використовуваного екземпляра браузера, і саме тут на допомогу приходять бажані можливості. Бажані можливості налаштовують екземпляр драйвера Selenium Вебдрайвер, включаючи ChromeDriver, FirefoxДрайвер та Internet Explorer.
Наведені нижче кроки можна додати до Selenium скрипт для очищення ситуації «Ненадійне з’єднання» для кожного браузера.
⚠️ Selenium Примітка за 4 рік: Клас DesiredCapabilities було видалено в Selenium 4. Класи параметрів браузера тепер мають однакові налаштування через єдину можливість W3C, прийняти незахищені сертифікати.
| браузер | Selenium 4 клас | виклик |
|---|---|---|
| Chrome | Параметри Chrome | встановитиAcceptInsecureCerts(true) |
| Firefox | FirefoxОпції | встановитиAcceptInsecureCerts(true) |
| край | EdgeOptions | встановитиAcceptInsecureCerts(true) |
| Safari | Javascriptвиконавець | тимчасовий обхідний скрипт |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Обробка помилок сертифіката SSL Firefox
Для обробки помилки сертифіката SSL у Firefox, нам потрібно використовувати бажані можливості Selenium Webdriver і виконайте наступні дії.
Крок 1) Спочатку нам потрібно створити новий Firefox профіль сказати «мій профіль».
Крок 2) Тепер перейдіть до myProfile у сценарії, як показано нижче, і створіть FirefoxОб'єкт профілю.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Крок 3) Тепер нам потрібно встановити властивості “setAcceptUntrustedCertificates” та “setAssumeUntrustedCertificateIssuer” у Fire. Fox профіль.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Крок 4) Тепер використовуйте вогоньFox профіль у ВогніFox об'єкт драйвера.
WebDriver driver = new FirefoxDriver (ffProfile)
Примітка: "setAcceptUntrustedCertificates"І"setAssumeUntrustedCertificateIssuer«є можливостями обробки помилок сертифікатів у веббраузерах».
⚠️ Примітка до версії: код на основі профілю, наведений вище, цілі Selenium 2 і Selenium 3. На Selenium 4 профіль кріпиться через FirefoxОпції та Firefox приймає незахищені сертифікати за замовчуванням.
Обробка помилок сертифіката SSL у Chrome
Для обробки помилок SSL у Chrome об'єкт DesiredCapabilities нижче приймає всі сертифікати SSL, тому користувач не бачить попередження про сертифікат під час запуску.
Нам потрібно створити екземпляр класу DesiredCapabilities, як показано нижче:-
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ Примітка до версії: CapabilityType.ACCEPT_SSL_CERTS належить до старого протоколу JSON Wire. Замініть його фрагментом ChromeOptions, показаним раніше під час запуску. Selenium 4.
Обробка помилок сертифіката SSL в IE
На відміну від обробки сертифікатів SSL у браузері Chrome і Firefox, в IE вам, можливо, доведеться впоратися з цим за допомогою наявність.
Щоб обробити SSL-сертифікат в IE, ви можете вирішити цю ситуацію двома способами.
Спосіб 1) Натисніть посилання «Перейти на цей веб-сайт (не рекомендується)» у проміжному вікні. Це посилання має ідентифікатор «overridelink», який ви можете перевірити на панелі HTML, відкритій за допомогою F12, як показано на скріншоті нижче.
Натисніть на посилання за допомогою методу driver.navigate(). JavaСценарій, як показано нижче: -
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Спосіб 2) Другий метод досить схожий на код обробки 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.
⚠️ Примітка до версії: Internet Explorer 11 було припинено підтримку в червні 2022 року. Запустіть той самий сценарій для Microsoft Edge за допомогою EdgeOptions або запускати Edge в режимі IE, де цього все ще потребує застаріла програма.





