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.





