Kuinka käsitellä SSL-sertifikaattia Selenium

⚡ Älykäs yhteenveto

SSL-varmennevirheet pysäyttävät Selenium testaa hetkeä, kun selain hylkää epäluotettavan tai vanhentuneen varmenteen, joten jokainen WebDriver-skripti tarvitsee selainkohtaisen ominaisuuden, joka hyväksyy varmenteen ja sallii automaation jatkua.

  • 🔘 Määritelmä: SSL salaa selaimen ja palvelimen välisen liikenteen, ja varmenne todistaa palvelimen identiteetin.
  • ☑️ Virheen laukaisin: Selaimet estävät epäluotettavat, vanhentuneet, peruutetut tai itse allekirjoitetut varmenteet ja näyttävät varoitussivun.
  • ✅ Firefox: A Firefox profiili asettaa asetukset setAcceptUntrustedCertificates ja setAssumeUntrustedCertificateIssuer ennen ajurin käynnistymistä.
  • 🧪 Kromi: DesiredCapabilities ja ACCEPT_SSL_CERTS hyväksyvät varmenteen Selenium 2 ja Selenium 3.
  • 🛠️ Internet Explorer: A JavaSkriptin napsauttaminen overridelink-elementissä ohittaa varoitussivun.
  • ⚠️ Selenium 4: asetaHyväksyInsecureCerts Chrome-asetuksissa, FirefoxOptions tai EdgeOptions korvaa DesiredCapabilities-kohdan.

Kuinka käsitellä SSL-sertifikaattia Selenium

SSL-sertifikaatti sisään Selenium

SSL (Secure Sockets Layer) on standardi suojausprotokolla, jolla luodaan suojattu yhteys palvelimen ja asiakkaan, joka on selain, välille.

SSL-varmenne suojaa palvelimen ja asiakassovelluksen välillä liikkuvaa dataa vahvalla salauksella ja digitaalisella allekirjoituksella. Sivuston omistaja asentaa joko SSL-varmenteen tai koodin allekirjoitusvarmenteen.

SSL-sertifikaatin edut

SSL-sertifikaatin käyttämisessä on monia etuja, kuten

  • Voit lisätä käyttäjiensä ja asiakkaidensa luottamusta liiketoiminnan nopean kasvun edistämiseksi
  • Nämä varmenteet auttavat turvaamaan online-tapahtumat ja asiakkaiden arkaluontoiset tiedot, kuten luotto-/pankkikorttitiedot jne.
  • Varmenteen allekirjoitus saa yleensä maksimimäärän latauksia ja hyviä arvosteluja käyttäjiltä.

SSL-suojatut verkkosivustot alkavat https:// ja näet lukkokuvakkeen tai vihreän osoitepalkin, jos yhteys on muodostettu turvallisesti.

Jos esimerkiksi haluat tehdä jonkin tapahtuman verkkopankin kautta tai haluat ostaa a Puhelinnumero puhelimitse verkkokauppasivuston kautta, kuten Flipkart tai Amazon.

Mitä tapahtuu verkkoselaimen ja palvelimen välillä

  1. Selain yrittää muodostaa yhteyden SSL-suojattuun verkkosivustoon. Selain pyytää verkkopalvelinta tunnistamaan itsensä
  2. Palvelin lähettää selaimelle kopion SSL-sertifikaatistaan
  3. Selain tarkistaa, onko SSL-varmenne aito. Jos näin on, se lähettää viestin palvelimelle
  4. Palvelin lähettää takaisin digitaalisesti allekirjoitetun kuittauksen SSL-salatun istunnon aloittamisesta
  5. Salatut tiedot jaetaan palvelimen ja selaimen välillä

Korttinumerot ja kirjautumistiedot kulkevat kyseisen istunnon aikana, joten tiedonvaihdon on pysyttävä salattuna päästä päähän eikä sitä voida siepata.

Esimerkiksi alla oleva lukkosymboli ja osoiterivi vahvistavat, että varmenne hyväksyttiin.

  1. Tyyppi https://netbanking.hdfcbank.com/netbanking/ .
  2. Hit Enter.
  3. Näet selaimessa vihreän osoitepalkin seuraavasti: -

Vihreä osoiterivi selaimessa SSL-suojatulla HDFC-verkkopankkisivulla

Kuinka SSL-sertifikaatti luo suojatun yhteyden

Alla oleva kaavio traces kättely, ja sitä seuraavat numeroidut vaiheet selittävät jokaisen kädenvaihdon.

Kaavio SSL-kättelystä verkkoselaimen ja verkkopalvelimen välillä

  1. selain lähettää HTTPS-pyynnön palvelimelle.
  2. Nyt palvelimen on annettava selaimelle jokin tunniste sen luotettavuuden osoittamiseksi. Tämä voidaan tehdä lähettämällä kopio sen SSL-sertifikaatista selaimeen.
  3. Jokaisella selaimella on oma luettelo luotetuista varmentajista. Selain tarkistaa varmenteen juuren luotettujen CA:iden luetteloon nähden ja tarkistaa, että varmenne ei ole vanhentunut, peruutettu ja että yleinen nimi on kelvollinen verkkosivustolle, johon se muodostaa yhteyden.
  4. Jos selain luottaa varmenteeseen, palvelimen ja selaimen välille luodaan salattu istunto.
  5. Palvelin ja selain voivat lähettää salattuja viestejä

SSL-sertifikaattien tyypit

Selain ja palvelin käyttävät SSL-sertifikaattimekanismia voidakseen muodostaa suojatun yhteyden. Tämä yhteys sisältää kolmen tyyppisen varmenteen tarkistamisen.

  • root
  • väli-
  • Palvelinvarmenne

SSL-sertifikaatin hankkimisprosessi

SSL-varmenteen hankintaprosessi sisältää seuraavat vaiheet: -

  1. Ensin sinun on luotava CSR-pyyntö (luo sertifikaatin allekirjoituspyyntö).
  2. CSR-pyyntö luo CSR-datatiedoston, joka lähetetään SSL-varmenteen myöntäjälle, joka tunnetaan nimellä CA (Certificate Authority).
  3. Varmentaja käyttää CSR-datatiedostoja SSL-varmenteen luomiseen palvelimellesi.
  4. Kun olet saanut SSL-sertifikaatin, sinun on asennettava se palvelimellesi.
  5. Asennettavaksi tarvitaan myös välisertifikaatti, joka yhdistää SSL-sertifikaattisi CA:n juurivarmenteeseen.

Alla oleva kuva edustaa kaikkia kolmea sertifikaattia Pää-, keskitason ja palvelinsertifikaatti.

Varmenneketju, joka näyttää juuri-, väli- ja palvelin-SSL-varmenteet

Kuinka SSL-varmenteet varmistetaan

SSL toimii verkkopalvelintietokoneessa ja verkkopalvelimen selaimessa olevien ohjelmien ja salaus-/salauksenpurkurutiinien yhdistelmän kautta.

SSL-sertifikaatti sisältää periaatteessa alla olevat tiedot.

  1. Aihe, joka on verkkosivuston omistajan henkilöllisyys.
  2. Voimassaolotiedot - julkinen ja yksityinen avain.

Yksityinen ja julkinen avain ovat kaksi yksilöllisesti toisiinsa liittyvää kryptografista avainta (numeroa). Julkisella avaimella salattu asia voidaan purkaa vain yksityisellä avaimella. Selain näyttää nämä kentät varmenteen tarkistuksen yhteydessä, kuten alla.

Varmenteen tietoruutu, jossa luetellaan varmenteen aihe, voimassaoloaika ja julkinen avain

Kun suojattua yhteyttä ei muodosteta palvelimen ja asiakkaan välille varmenteen vuoksi, seuraava SSL-sertifikaattivirhe ilmenee.

SSL-varmennevirheiden tyypit

Oletetaan, että kirjoitat https-pyynnön ja selain vastaa "Tämä yhteys ei ole luotettu" tai "Sivuston suojausvarmenteeseen ei luoteta". Selain ei voinut muodostaa suojattua yhteyttä esitetyllä varmenteella, joten se pysähtyy ja pyytää käyttäjää ryhtymään asianmukaisiin toimiin.

Eri selaimissa todennäköisesti näkemäsi sertifikaatin tyypit voivat olla jokseenkin tämän kaltaisia

  1. TulipaloFox - Tämä yhteys on epäluotettava
  2. Google Chrome – Tämän sivuston tietoturvaan ei luoteta
  3. Internet Explorer (IE) – Luotettu sertifikaattiviranomainen (CA) ei luottanut tähän tämän sivuston tarjoamaan suojausvarmenteeseen

Alla oleva kuvakaappaus näyttää epäluotettavan varmenteen tuottaman väliikkunan.

Selain näyttää varoitussivun epäluotettavasta yhteydestä virheellisen SSL-varmenteen vuoksi

Kuinka käsitellä SSL-sertifikaattivirhettä käyttämällä Selenium Web-ohjain

Oletetaan testiskripti osuu yllä olevaan ”Epäluotettava yhteys” -sivuun. Skriptiä on muutettava niin, että se hoitaa SSL-poikkeuksen itse, pelkästään automaatio.

Muutos riippuu käytettävästä selaininstanssista, ja tässä kohtaa halutut ominaisuudet tulevat kuvaan. Halutut ominaisuudet määrittävät ajuriesiintymän Selenium Webdriver, mukaan lukien ChromeDriver, FirefoxOhjain ja Internet Explorer.

Alla olevat vaiheet voidaan lisätä Selenium skripti, joka poistaa "Epäluotettava yhteys" -tilanteen jokaisessa selaimessa.

⚠️ Selenium Vuoden 4 huomautus: DesiredCapabilities-luokka poistettiin vuonna Selenium 4. Selaimen asetusluokat sisältävät nyt saman asetuksen yhden W3C-ominaisuuden kautta. hyväksy turvattomat varmenteet.

selain Selenium 4-luokka Puhelu
kromi Chrome-asetukset setAcceptInsecureCerts(true)
Firefox FirefoxVaihtoehdot setAcceptInsecureCerts(true)
Edge EdgeOptions setAcceptInsecureCerts(true)
safari Javascripttäytäntöönpanija väliaikainen ohitusskripti
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
WebDriver driver = new ChromeDriver(options);

SSL-sertifikaattivirheiden käsittely Firefox

SSL-sertifikaattivirheen käsittelyyn Firefox, meidän on käytettävä haluttuja ominaisuuksia Selenium Webdriver ja noudata seuraavia ohjeita.

Vaihe 1) Ensin meidän täytyy luoda uusi Firefox profiili sanoa "profiilini".

Vaihe 2) Käytä nyt komentosarjan myProfilea alla kuvatulla tavalla ja luo FirefoxProfiiliobjekti.

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

Vaihe 3) Nyt meidän on asetettava Fire-palvelimen ominaisuudet ”setAcceptUntrustedCertificates” ja ”setAssumeUntrustedCertificateIssuer”. Fox profiili.

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

Vaihe 4) Käytä nyt TultaFox profiili FiressäFox kuljettajan esine.

WebDriver driver = new FirefoxDriver (ffProfile)

Huomautus: "setAcceptUntrustedCertificates"Ja"setAssumeUntrustedCertificateIssuer"ovat ominaisuuksia, jotka käsittelevät varmennevirheitä verkkoselaimissa."

⚠️ Versiohuomautus: profiilipohjainen koodi yllä oleviin kohteisiin Selenium 2 ja Selenium 3. Päällä Selenium 4 Profiili on kiinnitetty FirefoxVaihtoehdot ja Firefox hyväksyy oletuksena suojaamattomat sertifikaatit.

SSL-varmenteen virheiden käsittely Chromessa

SSL-virheen käsittelemiseksi Chromessa alla oleva DesiredCapabilities-objekti hyväksyy kaikki SSL-varmenteet, joten käyttäjä ei näe varmennevaroitusta suorituksen aikana.

Meidän on luotava DesiredCapabilities-luokan esiintymä seuraavasti: -

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

⚠️ Versiohuomautus: CapabilityType.ACCEPT_SSL_CERTS kuuluu vanhaan JSON Wire Protocol -protokollaan. Korvaa se aiemmin näytetyllä ChromeOptions-koodinpätkällä suorituksen aikana. Selenium 4.

SSL-sertifikaatin virheiden käsittely IE:ssä

Toisin kuin SSL-varmenteiden käsittely Chrome-selaimessa ja FirefoxIE:ssä saatat joutua käsittelemään sitä käyttämällä javascript.

Voit käsitellä SSL-varmennetta IE:ssä kahdella tavalla.

menetelmä 1) Napsauta välilehdellä olevaa linkkiä ”Jatka tälle verkkosivustolle (ei suositella)”. Linkin tunniste on ”overridelink”, jonka voit vahvistaa F12-näppäimellä avattavassa HTML-ruudussa, kuten alla olevassa kuvakaappauksessa näkyy.

Internet Explorerin varmennevaroitus ja Jatka tälle verkkosivustolle -ohituslinkki

Napsauta linkkiä käyttämällä driver.navigate()-menetelmää JavaSkripti alla olevan mukaisesti: -

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

menetelmä 2) Toinen menetelmä on melko samanlainen kuin Chromen SSL-käsittelykoodi.

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

Yllä oleva koodi auttaa käsittelemään SSL-sertifikaattivirheitä IE:ssä.

⚠️ Versiohuomautus: Internet Explorer 11 poistettiin käytöstä kesäkuussa 2022. Suorita sama skenaario seuraavilla alueilla: Microsoft Edge EdgeOptionsilla tai aja Edge IE-tilassa, jos vanha sovellus sitä edelleen vaatii.

UKK

Chromium-projekti toimii badssl.com, joka palvelee vanhentuneita, itse allekirjoitettuja, peruutettuja ja väärän isännän aliverkkotunnuksia. Osoita testiskripti osoitteeseen expired.badssl.com toistaaksesi todellisen varmenneonnettomuuden turvallisesti.

Ei. Selenium 4 poisti sen selaimen Options-luokkien hyväksi. Rakenna ChromeOptions, FirefoxOptions- tai EdgeOptions-objektia, kutsu setAcceptInsecureCerts(true)-funktiota ja välitä se ajurin rakentajalle.

Luo EdgeOptions-objekti, kutsu setAcceptInsecureCerts(true)-funktiota ja välitä se EdgeDriver-konstruktorille. Malli vastaa Chromea, koska molemmat selaimet jakavat Chromium-moottorin.

SafariDriverissa ei ole accept-insecure-certs-kytkintä. Käytä JavascriptSuoritin CertificateWarningController.visitInsecureWebsiteWithTemporaryBypass()-funktion suorittamiseksi, joka tyhjentää väliikkunan vain kyseisen istunnon osalta.

ERR_CERT_DATE_INVALID merkitsee vanhentunutta varmennetta, ERR_CERT_REVOKED mitätöityä ja ERR_CERT_AUTHORITY_INVALID itse allekirjoitettua varmennetta tai epäluotettavaa myöntäjää. Koodi nimeää syyn ennen kuin muutat mitään skriptiä.

Koneoppiminen ryhmittelee varmennevirheet virhekoodin ja isännän mukaan erottaen vanhentuneen testivarmenteen aidosta viasta. Tämä klusterointi estää yhden ympäristöongelman kirjaamisen monina toisiinsa liittymättöminä testivirheinä.

Kyllä. GitHub Copilot luonnostelee Options-objektin ja ajurikonstruktorin kommentista, mutta tarkista, että se ehdottaa setAcceptInsecureCerts-kutsua poistetun DesiredCapabilities-kutsunsa sijaan.

Vain testiympäristöissä. Kaikkien varmenteiden hyväksyminen piilottaa vanhenemis-, isäntänimi- ja ketjuvirheet, joten pidä lippu poissa tuotantokäyttöjärjestelmän savutesteistä ja vaadi varmennetta erikseen, kun tietoturvaa testataan.

Tiivistä tämä viesti seuraavasti: