Hogyan kell kezelni az SSL-tanúsítványt Selenium

⚡ Okos összefoglaló

SSL-tanúsítványhibák leállítják a Selenium teszteli azt a pillanatot, amikor egy böngésző elutasít egy nem megbízható vagy lejárt tanúsítványt, így minden WebDriver szkriptnek szüksége van egy böngészőspecifikus képességre, amely elfogadja a tanúsítványt, és lehetővé teszi az automatizálás folytatását.

  • 🔘 Meghatározás: Az SSL titkosítja a böngésző és a szerver közötti forgalmat, és a tanúsítvány igazolja a szerver identitását.
  • ☑️ Hiba kiváltó oka: A böngészők blokkolják a nem megbízható, lejárt, visszavont vagy önaláírt tanúsítványokat, és figyelmeztető oldalt jelenítenek meg.
  • Firefox: A Firefox A profil a meghajtó indulása előtt beállítja a setAcceptUntrustedCertificates és a setAssumeUntrustedCertificateIssuer értékeket.
  • 🧪 Króm: Az ACCEPT_SSL_CERTS beállítással rendelkező DesiredCapabilities elfogadja a tanúsítványt a következőn: Selenium 2 és Selenium 3.
  • 🇧🇷 Internet Explorer: A JavaA szkript az overridelink elemre kattintásával kihagyja a figyelmeztető oldalt.
  • ⚠️ Selenium 4: setAcceptInsecureCerts a ChromeOptions oldalon, FirefoxAz Options vagy az EdgeOptions a DesiredCapabilities helyére kerül.

Hogyan kell kezelni az SSL-tanúsítványt Selenium

SSL tanúsítvány be Selenium

Az SSL (Secure Sockets Layer) egy szabványos biztonsági protokoll, amely biztonságos kapcsolatot létesít a szerver és a kliens, azaz egy böngésző között.

Az SSL-tanúsítvány erős titkosítással és digitális aláírással védi a szerver és a kliensalkalmazás között mozgó adatokat. A webhely tulajdonosa vagy SSL-tanúsítványt, vagy kódaláíró tanúsítványt telepít.

Az SSL-tanúsítvány előnyei

Az SSL-tanúsítvány használatának számos előnye van, mint pl.

  • Növelni lehet a felhasználók és az ügyfelek bizalmát az üzlet gyors növekedése érdekében
  • Ezek a tanúsítványok segítenek az online tranzakciók és az ügyfelek érzékeny információinak, például hitelkártya-/bankkártya-adatainak védelmében.
  • A tanúsítvány aláírásakor a legtöbb letöltést és jó értékelést kapnak a felhasználók.

Az SSL-védett webhelyek ezzel kezdődnek https:// és egy lakat ikon vagy zöld címsor látható, ha a kapcsolat biztonságosan létrejött.

Például, ha netbankon keresztül szeretne valamilyen tranzakciót végrehajtani, vagy vásárolni szeretne a Mobil telefonon e-kereskedelmi webhelyen keresztül, például Flipkart vagy Amazon.

Mi történik a webböngésző és a szerver között

  1. A böngésző megpróbál csatlakozni egy SSL-lel védett webhelyhez. A böngésző kéri a webszervert, hogy azonosítsa magát
  2. A szerver elküldi a böngészőnek az SSL-tanúsítvány másolatát
  3. A böngésző ellenőrzi, hogy az SSL-tanúsítvány eredeti-e. Ha igen, akkor üzenetet küld a szervernek
  4. A szerver digitálisan aláírt visszaigazolást küld az SSL-titkosított munkamenet elindításához
  5. A titkosított adatokat a szerver és a böngésző megosztja

A kártyaszámok és a bejelentkezési adatok továbbításra kerülnek ezen a munkameneten keresztül, így az adatcserének végig titkosítva kell maradnia, és nem lehet lehallgatni.

Például az alábbi lakat és címsor megerősíti, hogy a tanúsítványt elfogadták.

  1. típus https://netbanking.hdfcbank.com/netbanking/ .
  2. Enter leütése.
  3. Egy zöld címsort fog látni a böngészőben az alábbiak szerint: -

Zöld címsor a böngészőben egy SSL-lel védett HDFC netbanki oldalhoz

Hogyan hoz létre az SSL-tanúsítvány biztonságos kapcsolatot?

Az alábbi ábra traca kézfogást, és az azt követő számozott lépések elmagyarázzák az egyes cseréket.

Az SSL kézfogás diagramja egy webböngésző és egy webszerver között

  1. böngésző HTTPS kérést küld a szervernek.
  2. Most a kiszolgálónak bizonyos azonosítást kell adnia a böngészőnek, hogy igazolja, hogy megbízható. Ezt úgy teheti meg, hogy elküldi az SSL-tanúsítvány másolatát a böngészőnek.
  3. Minden böngészőnek saját listája van a megbízható hitelesítésszolgáltatókról. A böngésző ellenőrzi a tanúsítvány gyökerét a megbízható hitelesítésszolgáltatók listáján, és ellenőrzi, hogy a tanúsítvány lejárt-e, nincs-e visszavonva, és hogy a közös név érvényes-e arra a webhelyre, amelyhez csatlakozik.
  4. Ha a böngésző megbízik a tanúsítványban, titkosított munkamenet jön létre a szerver és a böngésző között.
  5. A szerver és a böngésző titkosított üzeneteket küldhet

Az SSL tanúsítványtípusok

A böngésző és a szerver SSL-tanúsítvány-mechanizmust használ a biztonságos kapcsolat létrehozásához. Ez a kapcsolat három típusú tanúsítvány ellenőrzését foglalja magában.

  • Gyökér
  • Közbülső
  • Szerver tanúsítvány

Az SSL-tanúsítvány megszerzésének folyamata

Az SSL-tanúsítvány megszerzésének folyamata a következő lépéseket tartalmazza: -

  1. Először is létre kell hoznia a CSR-kérelmet (Certificate Signing Request).
  2. A CSR-kérés CSR-adatfájlt hoz létre, amelyet elküld a CA (Certificate Authority) néven ismert SSL-tanúsítvány-kibocsátónak.
  3. A CA a CSR-adatfájlok segítségével hozza létre az SSL-tanúsítványt a kiszolgáló számára.
  4. Miután megkapta az SSL-tanúsítványt, telepítenie kell azt a szerverére.
  5. Telepíteni kell egy köztes tanúsítványt is, amely összekapcsolja az Ön SSL-tanúsítványát a CA gyökértanúsítványával.

Az alábbi képen mindhárom tanúsítvány látható. Gyökér-, középszintű és szervertanúsítvány.

A tanúsítványlánc, amelyen látható a gyökér, a köztes és a szerver SSL-tanúsítványai

Az SSL-tanúsítványok ellenőrzésének módja

Az SSL a webszerver számítógépén és a webszerver böngészőjén található programok és titkosítási/visszafejtési rutin kombinációján keresztül működik.

Az SSL-tanúsítvány alapvetően az alábbi információkat tartalmazza.

  1. Tárgy, amely a webhely tulajdonosának személyazonossága.
  2. Érvényességi információ – nyilvános és privát kulcs.

A privát és a nyilvános kulcs két egyedileg összefüggő kriptográfiai kulcs (szám). A nyilvános kulccsal titkosított adatokat csak privát kulccsal lehet visszafejteni. A böngésző ezeket a mezőket jeleníti meg a tanúsítvány ellenőrzésekor, az alábbiak szerint.

A tanúsítvány részleteit tartalmazó ablaktábla, amelyen feltüntetik a tárgyat, az érvényességi időszakot és a nyilvános kulcsot.

Ha a tanúsítvány miatt nem jön létre biztonságos kapcsolat a szerver és az ügyfél között, a következő SSL-tanúsítványhiba jelenik meg.

Az SSL-tanúsítvány-hibák típusai

Tegyük fel, hogy beír egy https kérést, és a böngésző a következő válaszsal válaszol: „Ez a kapcsolat nem megbízható” vagy „A webhely biztonsági tanúsítványa nem megbízható”. A böngésző nem tudott biztonságos kapcsolatot létesíteni a bemutatott tanúsítvánnyal, ezért leáll, és a felhasználót a megfelelő művelet megtételére kéri.

A különböző böngészőkben a tanúsítványok miatt előforduló hibatípusok hasonlóak lehetnek

  1. természetFox - Ez a kapcsolat nem megbízható
  2. Google Chrome – Ennek az oldalnak a biztonsága nem megbízható
  3. Internet Explorer (IE) – A webhely által bemutatott biztonsági tanúsítványt egy megbízható tanúsító hatóság (CA) nem bízta meg

Az alábbi képernyőkép egy nem megbízható tanúsítvány által létrehozott közbeiktatott ablakot mutat.

A böngésző által megjelenített, érvénytelen SSL-tanúsítvány esetén a nem megbízható kapcsolatra vonatkozó figyelmeztető oldal

Az SSL-tanúsítványhiba kezelése a használatával Selenium Webdriver

Tegyük fel, hogy a tesztszkript eléri a fenti „Nem megbízható kapcsolat” oldalt. A szkriptet úgy kell módosítani, hogy az SSL kivételt magától, pusztán a következőn keresztül kezelje automatizálás.

A változás a használt böngészőpéldánytól függ, és itt jönnek képbe a kívánt képességek. A kívánt képességek a következő illesztőprogram-példányát konfigurálják: Selenium Webdriver, beleértve a ChromeDrivert is, FirefoxIllesztőprogram és Internet Explorer.

Az alábbi lépések hozzáadhatók egy Selenium szkriptet a „Nem megbízható kapcsolat” állapot törléséhez minden böngészőben.

⚠️ Selenium 4-os megjegyzés: A DesiredCapabilities osztályt eltávolították a következőben: Selenium 4. A böngésző Beállítások osztályai mostantól ugyanazt a beállítást egyetlen W3C-képességen keresztül tartalmazzák, elfogadja az InsecureCerts-et.

böngésző Selenium 4 osztály Hívás
króm ChromeOptions setAcceptInsecureCerts(true)
Firefox FirefoxOpciók setAcceptInsecureCerts(true)
él EdgeOptions setAcceptInsecureCerts(true)
Safari Javascriptvégrehajtó ideiglenes megkerülő szkript
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
WebDriver driver = new ChromeDriver(options);

SSL-tanúsítvány-hibakezelés Firefox

Az SSL-tanúsítványhiba kezeléséhez Firefox, használnunk kell a kívánt képességeket Selenium Webdriver, és kövesse az alábbi lépéseket.

Step 1) Először is létre kell hoznunk egy újat Firefox profilok mondd „a profilom".

Step 2) Most nyissa meg a myProfile-t a szkriptben az alábbiak szerint, és hozza létre a FirefoxProfil objektum.

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

Step 3) Most be kell állítanunk a „setAcceptUntrustedCertificates” és a „setAssumeUntrustedCertificateIssuer” tulajdonságokat a Fire felületen. Fox profil.

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

Step 4) Most használja a TüzetFox profil a TűzbenFox vezető objektum.

WebDriver driver = new FirefoxDriver (ffProfile)

Jegyzet: "setAcceptUntrustedCertificates"És"setAssumeUntrustedCertificateIssuer„olyan képességek, amelyekkel kezelni lehet a tanúsítványhibákat a webböngészőkben.”

⚠️ Verzió megjegyzés: a fenti profil alapú kód céljai Selenium 2 és Selenium 3. Tovább Selenium 4. Egy profil rögzítve van FirefoxOpciók, és Firefox alapértelmezés szerint elfogadja a nem biztonságos tanúsítványokat.

SSL-tanúsítványhiba-kezelés a Chrome-ban

A Chrome-ban az SSL-hibák kezeléséhez az alábbi DesiredCapabilities objektum minden SSL-tanúsítványt elfogad, így a felhasználó nem lát tanúsítványfigyelmeztetést a futás során.

Létre kell hoznunk a DesiredCapabilities osztály példányát az alábbiak szerint: -

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

⚠️ Verzió megjegyzés: A CapabilityType.ACCEPT_SSL_CERTS a régi JSON Wire Protocolhoz tartozik. Futtatáskor cserélje le a korábban látható ChromeOptions kódrészletre. Selenium 4.

SSL-tanúsítvány-hibakezelés az IE-ben

Ellentétben az SSL-tanúsítványok kezelésével a Chrome böngészőben és Firefox, IE-ben előfordulhat, hogy a következővel kell kezelnie: javascript.

Az SSL tanúsítvány IE-ben történő kezeléséhez kétféleképpen kezelheti ezt a helyzetet.

1. módszer) Kattintson a „Tovább erre a weboldalra (nem ajánlott)” linkre a közbeiktatott ablakban. A link azonosítója „overridelink”, amelyet az F12 billentyűvel megnyitott HTML panelen megerősíthet, ahogy az alábbi képernyőképen is látható.

Internet Explorer tanúsítványfigyelmeztetés a Továbblépés erre a webhelyre hivatkozással felülbírálása

Kattintson a hivatkozásra a driver.navigate() metódussal JavaA szkript az alábbiak szerint: -

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

2. módszer) A második módszer meglehetősen hasonló a króm SSL kezelőkódjához.

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

A fenti kód segít kezelni az SSL tanúsítvány hibáját az IE-ben.

⚠️ Verzió megjegyzés: Az Internet Explorer 11-et 2022 júniusában kivonták a forgalomból. Futtassa le ugyanezt a forgatókönyvet a következővel: Microsoft Edge az EdgeOptions segítségével, vagy vezesse az Edge-et IE módban, ahol egy régebbi alkalmazásnak továbbra is szüksége van rá.

GYIK

A Chromium projekt fut badssl.com, amely lejárt, önaláírt, visszavont és rossz host aldoméneket szolgál ki. Irányítson egy tesztszkriptet az expired.badssl.com címre a valódi tanúsítványhibák biztonságos reprodukálásához.

Nem. Selenium 4 eltávolította a böngésző Options osztályai javára. Készítsen egy ChromeOptions-t, FirefoxOptions vagy EdgeOptions objektum esetén hívd meg a setAcceptInsecureCerts(true) függvényt, és add át az illesztőprogram konstruktorának.

Hozz létre egy EdgeOptions objektumot, hívd meg a setAcceptInsecureCerts(true) függvényt, és add át az EdgeDriver konstruktornak. A minta megegyezik a Chrome-mal, mivel mindkét böngésző megosztja a Chromium motort.

A SafariDriver nem rendelkezik az „accept-insecure-certs” kapcsolóval. Használja az „accept-insecure-certs” kapcsolót. JavascriptA CertificateWarningController.visitInsecureWebsiteWithTemporaryBypass() metódus futtatásához szükséges végrehajtó, amely csak az adott munkamenethez tartozó közbeeső részt törli.

Az ERR_CERT_DATE_INVALID lejárt, az ERR_CERT_REVOKED visszavont, az ERR_CERT_AUTHORITY_INVALID pedig önaláírt vagy nem megbízható kibocsátó tanúsítványt jelöl. A kód a szkript módosítása előtt megnevezi az okot.

A gépi tanulás a tanúsítványhibákat hibakód és hoszt szerint csoportosítja, elkülönítve a lejárt tesztelési tanúsítványokat a valódi hibáktól. Ez a klaszterezés megakadályozza, hogy egyetlen környezeti probléma több egymással nem összefüggő teszthibaként kerüljön naplózásra.

Igen. GitHub másodpilóta egy megjegyzésből készíti el az Options objektum és az illesztőprogram konstruktorának vázlatát, de ellenőrizze, hogy a setAcceptInsecureCerts hívást javasolja-e az eltávolított DesiredCapabilities hívás helyett.

Csak tesztkörnyezetekben. Az összes tanúsítvány elfogadása elrejti a lejárati, hostname és lánchibákat, ezért tartsa távol a jelzőt az éles füsttesztektől, és explicit módon érvényesítse a tanúsítványt, amikor a biztonság tesztelés alatt áll.

Foglald össze ezt a bejegyzést a következőképpen: