Kako rukovati SSL certifikatom u Selenium
⚡ Pametni sažetak
Pogreške SSL certifikata zaustavljaju Selenium testirati trenutak kada preglednik odbije nepouzdani ili istekli certifikat, stoga svaka WebDriver skripta treba mogućnost specifičnu za preglednik koja prihvaća certifikat i omogućuje nastavak automatizacije.
SSL certifikat u Selenium
SSL (Secure Sockets Layer) je standardni sigurnosni protokol za uspostavljanje sigurne veze između poslužitelja i klijenta koji je preglednik.
SSL certifikat štiti podatke koji se kreću između poslužitelja i klijentske aplikacije snažnom enkripcijom i digitalnim potpisom. Vlasnik web-mjesta instalira SSL certifikat ili certifikat za potpisivanje koda.
Prednosti SSL certifikata
Postoje brojne prednosti korištenja SSL certifikata kao što su,
- Može se povećati povjerenje korisnika i kupaca kako bi se ubrzao rast poslovanja
- Ovi certifikati pomažu u zaštiti mrežnih transakcija i osjetljivih podataka o klijentima kao što su podaci kreditne/debitne kartice itd.
- Certifikat za potpisivanje ima tendenciju dobivanja maksimalnog broja preuzimanja i dobrih recenzija od korisnika.
Web stranice zaštićene SSL-om počinju s https:// i možete vidjeti ikonu lokota ili zelenu adresnu traku ako je veza sigurno uspostavljena.
Na primjer, ako želite obaviti neku transakciju putem net bankarstva ili želite kupiti a Kontakt broj telefona putem web stranice za e-trgovinu kao što je Flipkart ili Amazon.
Što se događa između web preglednika i poslužitelja
- Preglednik se pokušava povezati s web-stranicom zaštićenom SSL-om. Preglednik traži od web poslužitelja da se identificira
- Poslužitelj šalje pregledniku kopiju svog SSL certifikata
- Preglednik provjerava je li SSL certifikat originalan. Ako je tako, šalje poruku poslužitelju
- Poslužitelj šalje natrag digitalno potpisanu potvrdu za početak SSL šifrirane sesije
- Šifrirani podaci dijele se između poslužitelja i preglednika
Brojevi kartica i pristupni podaci putuju tijekom te sesije, tako da razmjena mora ostati šifrirana od početka do kraja i ne može se presresti.
Na primjer, lokot i adresna traka ispod potvrđuju da je certifikat prihvaćen.
- Tip https://netbanking.hdfcbank.com/netbanking/ .
- Pritisnite Enter.
- Vidjet ćete zelenu adresnu traku u pregledniku kao ispod:-
Kako SSL certifikat stvara sigurnu vezu
Dijagram ispod tracrukovanje, a numerirani koraci koji slijede objašnjavaju svaku razmjenu.
- preglednik šalje HTTPS zahtjev poslužitelju.
- Poslužitelj sada mora pružiti neku identifikaciju pregledniku kako bi dokazao da mu se vjeruje. To se može učiniti slanjem kopije njegovog SSL certifikata pregledniku.
- Svaki preglednik ima vlastiti popis pouzdanih CA-ova. Preglednik provjerava korijen certifikata prema svom popisu pouzdanih CA-ova i provjerava je li certifikat istekao, nije opozvan te je li uobičajeno ime važeće za web mjesto s kojim se povezuje.
- Ako preglednik vjeruje certifikatu, stvara se šifrirana sesija između poslužitelja i preglednika.
- Poslužitelj i preglednik mogu slati šifrirane poruke
Vrste SSL certifikata
Preglednik i poslužitelj koriste mehanizam SSL certifikata kako bi mogli uspostaviti sigurnu vezu. Ova veza uključuje provjeru tri vrste certifikata.
- Korijen
- Srednji
- Certifikat poslužitelja
Proces dobivanja SSL certifikata
Proces dobivanja SSL certifikata uključuje sljedeće korake:-
- Prvo morate izraditi zahtjev za CSR (kreiranje zahtjeva za potpisivanje certifikata).
- CSR zahtjev stvara CSR podatkovnu datoteku koja se šalje izdavaču SSL certifikata poznatom kao CA (Certificate Authority).
- CA koristi CSR podatkovne datoteke za stvaranje SSL certifikata za vaš poslužitelj.
- Nakon što primite SSL certifikat, morate ga instalirati na svoj poslužitelj.
- Također je potrebno instalirati posredni certifikat koji povezuje vaš SSL certifikat s CA korijenskim certifikatom.
Donja slika predstavlja sva tri certifikata- Root, Intermediate i Server Certificate.
Kako se provjeravaju SSL certifikati
SSL radi kroz kombinaciju programa i rutine šifriranja/dešifriranja koji postoje na računalu web poslužitelja i pregledniku web poslužitelja.
SSL certifikat u osnovi sadrži podatke ispod.
- Predmet koji je identitet vlasnika web stranice.
- Informacije o valjanosti - javni i privatni ključ.
Privatni i javni ključ su dva jedinstveno povezana kriptografska ključa (broja). Sve što je šifrirano javnim ključem može se dešifrirati samo privatnim ključem. Preglednik prikazuje ta polja kada se certifikat pregledava, kao što je prikazano dolje.
Kada se ne uspostavi sigurna veza između poslužitelja i klijenta zbog certifikata, pojavit će se sljedeća pogreška SSL certifikata.
Vrste pogrešaka SSL certifikata
Pretpostavimo da upišete https zahtjev, a preglednik odgovori s „Ova veza nije pouzdana“ ili „Sigurnosni certifikat web-mjesta nije pouzdan“. Preglednik nije mogao uspostaviti sigurnu vezu s predstavljenim certifikatom, pa se zaustavlja i traži od korisnika da poduzme odgovarajuću radnju.
Vrste pogrešaka koje ćete vjerojatno vidjeti zbog certifikata u različitim preglednicima mogu biti otprilike ove
- VatraFox - Ova veza nije sigurna
- Google Chrome – Sigurnost ove stranice nije pouzdana
- Internet Explorer (IE) – Povjerljivo tijelo za izdavanje certifikata (CA) nije vjerovalo ovom sigurnosnom certifikatu koji predstavlja ovo web mjesto
Snimka zaslona u nastavku prikazuje međuprostor koji proizvodi nepouzdani certifikat.
Kako riješiti pogrešku SSL certifikata korištenjem Selenium Webdriver
Pretpostavimo da je testni skript nailazi na stranicu "Nepouzdana veza" iznad. Skripta se mora prilagoditi tako da sama rješava SSL iznimku, isključivo putem automatizacija.
Promjena ovisi o instanci preglednika koja se koristi, i tu do izražaja dolaze željene mogućnosti. Željene mogućnosti konfiguriraju instancu upravljačkog programa za Selenium Webdriver, uključujući ChromeDriver, FirefoxVozač i Internet Explorer.
Koraci u nastavku mogu se dodati u Selenium skripta za brisanje situacije "Nepouzdana veza" za svaki preglednik.
⚠️ Selenium Napomena iz 4.: Klasa DesiredCapabilities je uklonjena u Selenium 4. Klase opcija preglednika sada nose istu postavku putem jedne W3C mogućnosti, prihvatiNesigurneCertifikate.
| preglednik | Selenium 4 klasa | poziv |
|---|---|---|
| krom | ChromeOpcije | postaviPrihvatiNesigurneCertifikate(true) |
| Firefox | FirefoxOpcije | postaviPrihvatiNesigurneCertifikate(true) |
| rub | Opcije ruba | postaviPrihvatiNesigurneCertifikate(true) |
| safari | Javascriptizvršitelj | privremeni zaobilazni skript |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Upravljanje pogreškom SSL certifikata Firefox
Za rješavanje pogreške SSL certifikata u Firefox, moramo koristiti željene mogućnosti Selenium Webdriver i slijedite sljedeće korake.
Korak 1) Prvo moramo stvoriti novi Firefox profil reci "moj profil".
Korak 2) Sada pristupite mom profilu u skripti kao u nastavku i kreirajte FirefoxObjekt profila.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Korak 3) Sada moramo postaviti svojstva "setAcceptUntrustedCertificates" i "setAssumeUntrustedCertificateIssuer" u Fireu. Fox profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Korak 4) Sada upotrijebite VatruFox profil u VatrenomFox objekt vozača.
WebDriver driver = new FirefoxDriver (ffProfile)
Bilješka: "setAcceptUntrustedCertificates"i"setAssumeUntrustedCertificateIssuer„su mogućnosti za rješavanje pogrešaka certifikata u web preglednicima.“
⚠️ Napomena o verziji: gore navedeni kod temeljen na profilu cilja Selenium 2 i Selenium 3. Na Selenium 4 profil je pričvršćen kroz FirefoxOpcije i Firefox prema zadanim postavkama prihvaća nesigurne certifikate.
Rješavanje pogreške SSL certifikata u Chromeu
Za rukovanje SSL greškom u Chromeu, objekt DesiredCapabilities u nastavku prihvaća svaki SSL certifikat, tako da korisnik ne vidi upozorenje o certifikatu tijekom izvođenja.
Moramo stvoriti instancu klase DesiredCapabilities kao što je prikazano u nastavku:-
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ Napomena o verziji: CapabilityType.ACCEPT_SSL_CERTS pripada starom JSON Wire Protocolu. Zamijenite ga s isječkom ChromeOptions prikazanim ranije prilikom pokretanja. Selenium 4.
Rukovanje pogreškama SSL certifikata u IE
Za razliku od rukovanja SSL certifikatima u pregledniku Chrome i Firefox, u IE-u, možda ćete to morati riješiti pomoću javascript.
Za rukovanje SSL certifikatom u IE-u, ovu situaciju možete riješiti na dva načina.
Metoda 1) Kliknite poveznicu „Nastavi na ovu web stranicu (ne preporučuje se)“ u međuprostoru. Ta poveznica nosi ID „overridelink“, što možete potvrditi u HTML oknu otvorenom tipkom F12, kao što je prikazano na slici ispod.
Kliknite na vezu pomoću metode driver.navigate() s JavaSkripta kao u nastavku: -
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Metoda 2) Druga metoda je prilično slična kodu za rukovanje SSL-om u Chromeu.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Gornji kôd pomoći će u rješavanju pogreške SSL certifikata u IE.
⚠️ Napomena o verziji: Internet Explorer 11 je ukinut u lipnju 2022. Pokrenite isti scenarij protiv Microsoft Edge s EdgeOptions ili pokrenite Edge u IE načinu rada gdje ga naslijeđena aplikacija i dalje zahtijeva.





