Как да боравим със SSL сертификат в Selenium
⚡ Умно обобщение
Грешките в SSL сертификата спират Selenium тестват в момента, в който браузърът откаже ненадежден или изтекъл сертификат, така че всеки WebDriver скрипт се нуждае от специфична за браузъра функция, която приема сертификата и позволява на автоматизацията да продължи.
SSL сертификат в Selenium
SSL (Secure Sockets Layer) е стандартен протокол за сигурност за установяване на защитена връзка между сървъра и клиента, който е браузър.
SSL сертификатът защитава данните, прехвърляни между сървъра и клиентското приложение, със силно криптиране и цифров подпис. Собственикът на сайта инсталира или SSL сертификат, или сертификат за подписване на код.
Предимства на SSL сертификата
Има редица предимства от използването на SSL сертификат като,
- Човек може да увеличи доверието на своите потребители и клиенти, за да подобри бързото развитие на бизнеса
- Тези сертификати помагат за защита на онлайн транзакции и чувствителна информация на клиентите, като данни за кредитни/дебитни карти и др.
- Сертификатът за подписване има тенденция да получава максимален брой изтегляния и добри отзиви от потребителите.
Защитените с SSL уебсайтове започват с https:// и можете да видите икона за заключване или зелена адресна лента, ако връзката е сигурно установена.
Например, ако искате да извършите транзакция чрез нетно банкиране или искате да закупите a подвижен телефон чрез сайт за електронна търговия като Flipkart или Amazon.
Какво се случва между уеб браузъра и сървъра
- Браузър се опитва да се свърже с уебсайт, защитен с SSL. Браузърът изисква от уеб сървъра да се идентифицира
- Сървърът изпраща на браузъра копие на своя SSL сертификат
- Браузърът проверява дали SSL сертификатът е истински. Ако е така, той изпраща съобщение до сървъра
- Сървърът изпраща обратно цифрово подписано потвърждение за стартиране на SSL криптирана сесия
- Шифрованите данни се споделят между сървъра и браузъра
Номерата на картите и данните за вход се предават през тази сесия, така че обменът трябва да остане криптиран от край до край и не може да бъде прихванат.
Например, катинарът и адресната лента отдолу потвърждават, че сертификатът е приет.
- Тип https://netbanking.hdfcbank.com/netbanking/ .
- Хит Enter.
- Ще видите зелена адресна лента в браузъра, както е показано по-долу: -
Как SSL сертификатът създава защитена връзка
Диаграмата по-долу tracръкостискането, а номерираните стъпки, които следват, обясняват всяка размяна.
- Browser изпраща HTTPS заявка към сървъра.
- Сега сървърът трябва да предостави някаква идентификация на браузъра, за да докаже, че му се вярва. Това може да стане чрез изпращане на копие от неговия SSL сертификат до браузъра.
- Всеки браузър има свой собствен списък с доверени CA. Браузърът проверява корена на сертификата спрямо своя списък с доверени CA и дали сертификатът е неизтекъл, неотменен и че общото име е валидно за уебсайта, към който се свързва.
- Ако браузърът вярва на сертификата, се създава криптирана сесия между сървъра и браузъра.
- Сървърът и браузърът могат да изпращат криптирани съобщения
Видове SSL сертификати
Браузърът и сървърът използват механизма на SSL сертификат, за да могат да установят защитена връзка. Тази връзка включва проверка на три вида сертификати.
- Корен
- Междинен
- Сертификат за сървър
Процес на получаване на SSL сертификат
Процесът на получаване на SSL сертификат включва следните стъпки: -
- Първо, трябва да създадете CSR (създаване на заявка за подписване на сертификат).
- CSR заявката създава CSR файл с данни, който се изпраща до издателя на SSL сертификат, известен като CA (Certificate Authority).
- CA използва CSR файловете с данни, за да създаде SSL сертификат за вашия сървър.
- След като получите SSL сертификата, трябва да го инсталирате на вашия сървър.
- Необходим е и междинен сертификат за инсталиране, който свързва вашия SSL сертификат с основния сертификат на CA.
Изображението по-долу представлява и трите сертификата- Основен, междинен и сървърен сертификат.
Как се проверяват 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 функционалност, приемане на несигурни сертификати.
| Browser | Selenium 4 клас | ПОЗВЪНЯВАНЕ |
|---|---|---|
| Chrome | Опции на Chrome | setAcceptInsecureCerts(true) |
| Firefox | FirefoxНастроики | setAcceptInsecureCerts(true) |
| Ръб | Опции за ръбове | setAcceptInsecureCerts(true) |
| сафари | 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 Protocol. Заменете го с фрагмента ChromeOptions, показан по-рано при изпълнение. Selenium 4.
Обработка на грешки в SSL сертификат в IE
За разлика от обработката на SSL сертификати в браузъра Chrome и Firefox, в IE може да се наложи да го обработите, използвайки JavaScript.
За да се справите със 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, където остаряло приложение все още го изисква.





