Kuidas käsitleda SSL-sertifikaati Selenium

⚡ Nutikas kokkuvõte

SSL-sertifikaadi vead peatavad Selenium testida hetke, mil brauser keeldub usaldamatust või aegunud sertifikaadist, seega vajab iga WebDriveri skript brauseripõhist funktsiooni, mis aktsepteerib sertifikaadi ja võimaldab automatiseerimisel jätkuda.

  • 🔘 Määratlus: SSL krüpteerib brauseri ja serveri vahelise liikluse ning sertifikaat tõendab serveri identiteeti.
  • ☑️ Vea käivitaja: Brauserid blokeerivad ebausaldusväärsed, aegunud, tühistatud või iseallkirjastatud sertifikaadid ja kuvavad hoiatuslehe.
  • Firefox: A Firefox Profiil määrab enne draiveri käivitamist parameetrid setAcceptUntrustedCertificates ja setAssumeUntrustedCertificateIssuer.
  • 🧪 Kroom: DesiredCapabilities koos ACCEPT_SSL_CERTS-iga aktsepteerib sertifikaati Selenium 2 ja Selenium 3.
  • 🛠️ Internet Explorer: A JavaSkripti klõpsamine elemendil „overridelink” jätab hoiatuslehe vahele.
  • ⚠️ Selenium 4: setAcceptInsecureCerts Chrome'i valikutes, Firefox„Options” või „EdgeOptions” asendab „DesiredCapabilities”.

Kuidas käsitleda SSL-sertifikaati Selenium

SSL-sertifikaat sees Selenium

SSL (Secure Sockets Layer) on standardne turvaprotokoll turvalise ühenduse loomiseks serveri ja kliendi ehk brauseri vahel.

SSL-sertifikaat kaitseb serveri ja kliendirakenduse vahel liikuvaid andmeid tugeva krüptimise ja digitaalallkirjaga. Saidi omanik installib kas SSL-sertifikaadi või koodiallkirjastamise sertifikaadi.

SSL-sertifikaadi eelised

SSL-sertifikaadi kasutamisel on mitmeid eeliseid, näiteks

  • Ettevõtluse kiireks kasvuks saab suurendada nende kasutajate ja klientide usaldust
  • Need sertifikaadid aitavad kaitsta veebitehinguid ja klientide tundlikku teavet, nagu krediit-/deebetkaardi andmed jne.
  • Sertifikaadi allkirjastamine kipub saama maksimaalselt allalaadimisi ja kasutajatelt häid kommentaare.

SSL-turvatud veebisaidid algavad https:// ja kui ühendus on turvaliselt loodud, näete lukuikooni või rohelist aadressiriba.

Näiteks kui soovite teha mõne tehingu netipanga kaudu või soovite osta a mobiilne telefoni teel e-kaubanduse saidi kaudu, näiteks Flipkart või Amazon.

Mis juhtub veebibrauseri ja serveri vahel

  1. Brauser proovib luua ühenduse SSL-iga kaitstud veebisaidiga. Brauser palub veebiserveril end tuvastada
  2. Server saadab brauserile oma SSL-sertifikaadi koopia
  3. Brauser kontrollib, kas SSL-sertifikaat on ehtne. Kui jah, saadab see serverile sõnumi
  4. Server saadab tagasi digitaalselt allkirjastatud kinnituse SSL-krüptitud seansi alustamiseks
  5. Krüpteeritud andmeid jagatakse serveri ja brauseri vahel

Selle seansi jooksul liiguvad kaardinumbrid ja sisselogimisandmed, seega peab andmevahetus jääma otsast lõpuni krüpteerituks ja seda ei saa pealt kuulata.

Näiteks allpool olev tabalukk ja aadressiriba kinnitavad, et sertifikaat aktsepteeriti.

  1. KASUTUSALA https://netbanking.hdfcbank.com/netbanking/ .
  2. Vajuta Enter.
  3. Näete brauseris rohelist aadressiriba järgmiselt: -

SSL-iga kaitstud HDFC internetipanga lehe roheline aadressiriba brauseris

Kuidas SSL-sertifikaat turvalise ühenduse loob

Allolev diagramm traces käepigistus ja järgnevad nummerdatud sammud selgitavad iga vahetust.

SSL-käepigistuse diagramm veebibrauseri ja veebiserveri vahel

  1. brauseri saadab serverile HTTPS-i päringu.
  2. Nüüd peab server andma brauserile identifitseerimise, et tõestada selle usaldusväärsust. Seda saab teha, saates brauserisse selle SSL-sertifikaadi koopia.
  3. Igal brauseril on oma usaldusväärsete CA-de loend. Brauser kontrollib sertifikaadi juurt oma usaldusväärsete CA-de loendi alusel ja kontrollib, kas sertifikaat on aegunud, tühistamata ja kas üldnimi on kehtiv selle veebisaidi jaoks, millega see ühenduse loob.
  4. Kui brauser sertifikaati usaldab, luuakse serveri ja brauseri vahel krüpteeritud seanss.
  5. Server ja brauser saavad saata krüpteeritud sõnumeid

SSL-sertifikaatide tüübid

Brauser ja server kasutavad turvalise ühenduse loomiseks SSL-sertifikaadi mehhanismi. See ühendus hõlmab kolme tüüpi sertifikaatide kontrollimist.

  • Juur
  • Kesktaseme
  • Serveri sertifikaat

SSL-sertifikaadi saamise protsess

SSL-sertifikaadi hankimise protsess hõlmab järgmisi samme:

  1. Esiteks peate looma CSR-i (sertifikaadi allkirjastamise taotluse) taotluse.
  2. CSR-i päring loob CSR-i andmefaili, mis saadetakse SSL-sertifikaadi väljaandjale, mida nimetatakse CA-ks (sertifitseerimisasutus).
  3. CA kasutab teie serverile SSL-sertifikaadi loomiseks CSR-i andmefaile.
  4. Pärast SSL-sertifikaadi saamist peate selle oma serverisse installima.
  5. Samuti on vaja installida vahesertifikaat, mis seob teie SSL-sertifikaadi CA juursertifikaadiga.

Allolev pilt esindab kõiki kolme sertifikaati - Juur-, vahe- ja serverisertifikaat.

Sertifikaadiahel, mis näitab juur-, vahe- ja serveri SSL-sertifikaate

Kuidas SSL-sertifikaate kontrollitakse

SSL töötab veebiserveri arvutis ja veebiserveri brauseris eksisteerivate programmide ja krüpteerimis-/dekrüpteerimisrutiini kombinatsiooni kaudu.

SSL-sertifikaat sisaldab põhiliselt allolevat teavet.

  1. Teema, mis on veebisaidi omaniku identiteet.
  2. Kehtivusinfo – avalik ja privaatvõti.

Privaatne ja avalik võti on kaks unikaalselt seotud krüptograafilist võtit (numbrit). Avaliku võtmega krüpteeritud teavet saab dekrüpteerida ainult privaatvõtmega. Brauser kuvab sertifikaadi kontrollimisel need väljad, nagu allpool näidatud.

Sertifikaadi üksikasjade paan, kus on loetletud sertifikaadi teema, kehtivusaeg ja avalik võti

Kui sertifikaadi tõttu ei looda serveri ja kliendi vahel turvalist ühendust, ilmneb järgmine SSL-sertifikaadi viga.

SSL-i sertifikaadi vigade tüübid

Oletame, et sisestate https-päringu ja brauser vastab teatega „See ühendus pole usaldusväärne” või „Saidi turvasertifikaati ei usaldata”. Brauser ei suutnud esitatud sertifikaadiga turvatud ühendust luua, seega peatub see ja palub kasutajal võtta vastavad toimingud.

Erinevates brauserites sertifikaadi tõttu tõenäoliselt kuvatavad veatüübid võivad olla sarnased

  1. TulekahjuFox – See ühendus on ebausaldusväärne
  2. Google Chrome – Selle saidi turvalisust ei usaldata
  3. Internet Explorer (IE) – Usaldusväärne sertifitseerimisasutus (CA) ei usaldanud seda sellel veebisaidil esitatud turvasertifikaati.

Allolev ekraanipilt näitab usaldamatu sertifikaadi loodud vaheteadet.

Brauser kuvab ebausaldusväärse ühenduse hoiatuslehe kehtetu SSL-sertifikaadi korral

Kuidas käsitleda SSL-i sertifikaadi viga Selenium Veebidraiver

Oletame testiskript jõuab ülalolevale lehele „Usaldamatu ühendus”. Skripti tuleb kohandada nii, et see hoolitseks SSL-erandi eest ise, ainult läbi automaatika.

Muutus sõltub kasutatavast brauseri eksemplarist ja siin tulevadki mängu soovitud võimalused. Soovitud võimalused konfigureerivad draiveri eksemplari Selenium Veebidraiver, sealhulgas ChromeDriver, FirefoxDraiver ja Internet Explorer.

Alltoodud samme saab lisada a-le Selenium skript iga brauseri „Usaldamatu ühenduse” olukorra kõrvaldamiseks.

⚠️ Selenium 4. aasta märkus: DesiredCapabilities klass eemaldati Selenium 4. Brauseri valikute klassid kannavad nüüd sama sätet ühe W3C funktsiooni kaudu. aktsepteeri ebaturvalisi sertifikaate.

brauseri Selenium 4 klass Helista
Kroom Chrome'i valikud setAcceptInsecureCerts(true)
Firefox FirefoxValikud setAcceptInsecureCerts(true)
Edge EdgeOptions setAcceptInsecureCerts(true)
safari JavascriptTäitja ajutine möödaviigu skript
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
WebDriver driver = new ChromeDriver(options);

SSL-sertifikaadi vigade käsitlemine Firefox

SSL-sertifikaadi vea käsitlemiseks Firefox, peame kasutama soovitud võimalusi Selenium Veebidraiver ja järgige järgmisi samme.

Step 1) Esmalt peame looma uue Firefox profiil ütle “minu profiil".

Step 2) Nüüd pääsege skriptis alla myProfile'ile ja looge see FirefoxProfiiliobjekt.

ProfilesIni prof = new ProfilesIni()				
FirefoxProfile ffProfile= prof.getProfile ("myProfile")

Step 3) Nüüd peame Fire'is määrama atribuudid „setAcceptUntrustedCertificates” ja „setAssumeUntrustedCertificateIssuer”. Fox profiil.

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

Step 4) Nüüd kasutage tuldFox profiil tulesFox juhi vastu.

WebDriver driver = new FirefoxDriver (ffProfile)

Märge: "setAcceptUntrustedCertificates"Ja"setAssumeUntrustedCertificateIssuer„on võimalused veebibrauserites sertifikaadivigade käsitlemiseks.

⚠️ Versiooni märkus: ülaltoodud profiilipõhine kood on suunatud Selenium 2 ja Selenium 3. sisse Selenium 4 profiil on kinnitatud läbi FirefoxValikud ja Firefox aktsepteerib vaikimisi ebaturvalisi sertifikaate.

SSL-i sertifikaadi veakäsitlus Chrome'is

Chrome'is SSL-vea käsitlemiseks aktsepteerib allolev DesiredCapabilities objekt kõiki SSL-sertifikaate, seega ei näe kasutaja käivitamise ajal sertifikaadihoiatust.

Peame looma DesiredCapabilities klassi eksemplari järgmiselt: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()       
handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)
WebDriver driver = new ChromeDriver (handlSSLErr);

⚠️ Versiooni märkus: CapabilityType.ACCEPT_SSL_CERTS kuulub vana JSON Wire Protocoli juurde. Asendage see käivitamisel varem kuvatud ChromeOptionsi koodijupiga. Selenium 4.

SSL-sertifikaadi tõrketöötlus IE-s

Erinevalt SSL-sertifikaatide käsitlemisest Chrome'i brauseris ja FirefoxIE-s peate sellega võib-olla tegelema, kasutades JavaScript.

SSL-sertifikaadi haldamiseks IE-s on selle olukorra käsitlemiseks kaks võimalust.

1. meetod) Klõpsake vaheaknal lingil „Jätka sellele veebisaidile (pole soovitatav)“. Sellel lingil on ID „overridelink“, mille saate kinnitada HTML-paanil, mis avaneb F12-klahviga, nagu alloleval ekraanipildil näidatud.

Internet Exploreri sertifikaadihoiatus koos lingiga „Jätka sellele veebisaidile” tühistamine

Klõpsake lingil, kasutades driver.navigate() meetodit koos JavaSkript allpool: -

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");

2. meetod) Teine meetod on üsna sarnane Chrome'i SSL-i käitlemise koodiga.

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.ie.driver","IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(capabilities);

Ülaltoodud kood aitab IE-s käsitleda SSL-sertifikaadi viga.

⚠️ Versiooni märkus: Internet Explorer 11 eemaldati toest 2022. aasta juunis. Käivitage sama stsenaarium vastu Microsoft Edge EdgeOptionsiga või käivitage Edge IE-režiimis, kui mõni pärandrakendus seda endiselt vajab.

KKK

Chromiumi projekt töötab badssl.com, mis teenindab aegunud, iseallkirjastatud, tühistatud ja vale hosti alamdomeene. Suuna testskript aadressile expired.badssl.com, et sertifikaadi riket turvaliselt taasesitada.

Ei. Selenium 4 eemaldas selle brauseri valikute klasside kasuks. Loo ChromeOptions, FirefoxOptions või EdgeOptions objekti puhul kutsuge välja funktsioon setAcceptInsecureCerts(true) ja edastage see draiveri konstruktorile.

Loo EdgeOptions objekt, kutsu välja funktsioon setAcceptInsecureCerts(true) ja edasta see EdgeDriver konstruktorile. Muster sobib Chrome'iga, kuna mõlemad brauserid jagavad Chromiumi mootorit.

SafariDriveril puudub lüliti „accept-insecure-certs”. Kasutage JavascriptTäitja, kes käivitab funktsiooni CertificateWarningController.visitInsecureWebsiteWithTemporaryBypass(), mis tühjendab ainult selle seansi vaheakna.

ERR_CERT_DATE_INVALID tähistab aegunud sertifikaati, ERR_CERT_REVOKED tühistatud sertifikaati ja ERR_CERT_AUTHORITY_INVALID iseallkirjastatud sertifikaati või ebausaldusväärset väljaandjat. Kood nimetab enne skripti muutmist põhjuse.

Masinõpe rühmitab sertifikaatide tõrked veakoodi ja hosti järgi, eraldades aegunud testisertifikaadi tegelikust veast. See klasterdamine hoiab ära ühe keskkonnaprobleemi logimise paljude omavahel mitteseotud testivigadena.

Jah. GitHubi koopia loob kommentaarist Options objekti ja draiveri konstruktori, aga kontrolli, et see soovitaks eemaldatud DesiredCapabilities kutse asemel käsku setAcceptInsecureCerts.

Ainult testkeskkondades. Kõikide sertifikaatide aktsepteerimine peidab aegumiskuupäeva, hostinime ja ahela defektid, seega hoidke lipp tootmiskeskkonna suitsutestidest eemal ja kinnitage sertifikaat selgesõnaliselt, kui turvalisust testitakse.

Võta see postitus kokku järgmiselt: