Hur man hanterar SSL-certifikat i Selenium
SSL-certifikat in Selenium
SSL (Secure Sockets Layer) är ett standard säkerhetsprotokoll för att upprätta en säker anslutning mellan servern och klienten som är en webbläsare.
SSL (Secure Socket Layer)-certifikat säkerställer säker transformation av data över servern och klientapplikationen med hjälp av stark krypteringsstandard eller digital signatur. Man måste installera ett SSL-certifikat eller ett kodsigneringscertifikat.
Fördelar med SSL-certifikat
Det finns flera fördelar med att använda SSL-certifikat som,
- Man kan öka deras användares och kunders förtroende för att snabbt öka verksamhetens tillväxt
- Dessa certifikat hjälper till att säkra onlinetransaktioner och kunders känslig information som kreditkorts-/betalkortsdata, etc.
- Signeringscertifikat tenderar att få ett maximalt antal nedladdningar och bra recensioner från användare.
SSL-säkrade webbplatser börjar med https://och du kan se en låsikon eller grön adressfält om anslutningen är säkert upprättad.
Till exempel, om du vill göra någon transaktion via nätbank eller vill köpa en Mobil telefon via e-handelssajt som Flipkart eller Amazon.
Vad händer mellan webbläsaren och servern
- En webbläsare försöker ansluta till en webbplats som är säkrad med SSL. Webbläsaren ber webbservern att identifiera sig
- Servern skickar en kopia av sitt SSL-certifikat till webbläsaren
- Webbläsaren verifierar om SSL-certifikatet är äkta. Om så är fallet skickas ett meddelande till servern
- Servern skickar tillbaka en digitalt signerad bekräftelse för att starta en SSL-krypterad session
- Den krypterade datan delas mellan servern och webbläsaren
När du gör det måste du överföra känslig information som kreditkortsnummer eller inloggningsuppgifter och som måste överföra säkert så att den inte kan hackas eller avlyssnas.
Till exempel
- Typ https://netbanking.hdfcbank.com/netbanking/ .
- Hit Enter.
- Du kommer att se ett grönt adressfält i webbläsaren enligt nedan:-
Hur skapar SSL-certifikatet en säker anslutning
- webbläsare skickar HTTPS-förfrågan till servern.
- Nu måste Server tillhandahålla en viss identifikation till webbläsaren för att bevisa att den är pålitlig. Detta kan göras genom att skicka en kopia av dess SSL-certifikat till webbläsaren.
- Varje webbläsare har sin egen lista över betrodda certifikatutfärdare. Webbläsaren kontrollerar certifikatroten mot dess lista över betrodda certifikatutfärdare och att certifikatet inte har löpt ut, inte har återkallats och att det gemensamma namnet är giltigt för webbplatsen som det ansluter till.
- Om webbläsaren litar på certifikatet skapas en krypterad session mellan servern och webbläsaren.
- Server och webbläsare kan skicka krypterade meddelanden
Typer av SSL-certifikat
Webbläsaren och servern använder SSL-certifikatmekanismen för att kunna upprätta en säker anslutning. Denna anslutning innebär verifiering av tre typer av certifikat.
- Rot
- Mellanliggande
- Servercertifikat
Processen för att få SSL-certifikat
Processen för att få SSL-certifikat inkluderar följande steg: -
- Först måste du skapa CSR-begäran (skapa en begäran om certifikatsignering).
- CSR-begäran skapar CSR-datafil, som skickas till SSL-certifikatutfärdaren känd som CA (Certificate Authority).
- CA använder CSR-datafilerna för att skapa SSL-certifikat för din server.
- Efter att ha mottagit SSL-certifikatet måste du installera det på din server.
- Ett mellancertifikat behövs också för att installeras som knyter ditt SSL-certifikat till CA:s rotcertifikat.
Bilden nedan representerar alla tre certifikat- Rot-, mellan- och servercertifikat.
Hur SSL-certifikat verifieras
SSL fungerar genom en kombination av program och kryptering/dekrypteringsrutin som finns på webbserverdatorn och webbserverns webbläsare.
SSL-certifikatet innehåller i princip nedanstående information.
- Ämne som är webbplatsägarens identitet.
- Giltighetsinformation - en offentlig och en privat nyckel.
Den privata och offentliga nyckeln är två unikt relaterade kryptografiska nycklar (nummer). Allt som är krypterat med en offentlig nyckel får endast dekrypteras med en privat nyckel.
När en säker anslutning inte upprättas mellan servern och klienten på grund av certifikatet, kommer följande SSL-certifikatfel att manifesteras.
Typer av SSL-certifikatfel
Anta att du skriver en https-förfrågan i webbläsaren och får ett meddelande som "Denna anslutning är otillförlitlig" eller "Webbplatsens säkerhetscertifikat är inte betrodd" beroende på vilken webbläsare du använder. Då är ett sådant fel föremål för SSL-certifikatfel.
Nu, om webbläsaren inte kan upprätta en säker anslutning med det begärda certifikatet, kommer webbläsaren att skicka undantaget "Otillförlitlig anslutning" enligt nedan och ber användaren att vidta lämpliga åtgärder.
De typer av fel du sannolikt kommer att se på grund av certifikat i olika webbläsare kan vara ungefär så här
- naturFox – Den här anslutningen är opålitlig
- Google Chrome - Den här webbplatsens säkerhet är inte pålitlig
- Internet Explorer (IE) – Det här säkerhetscertifikatet som presenteras av den här webbplatsen var inte pålitligt av en betrodd certifikatutfärdare (CA)
Hur man hanterar SSL-certifikatfel med hjälp av Selenium Webdriver
Anta att vi har skrivit några testskript och när vi körde skriptet, fångade vi situationen som "Otillförlitlig anslutning" ovan, hur hanterar vi undantaget enbart genom automatisering.
I sådana fall måste vi justera vårt skript på ett sådant sätt att det tar hand om SSL Exception av sig själv.
Skripten måste modifieras enligt vilken typ av webbläsarinstans vi använder. Dessa när önskade förmågor kommer i bild.
Desired Capabilities används för att konfigurera drivrutinsinstansen av Selenium Webdriver. Genom önskade funktioner kan man konfigurera alla drivrutinsinstanser som ChromeDriver, FirefoxDrivrutin och Internet Explorer.
För närvarande har vi ingen specifik URL för att skapa scenariot ovan, men jag tillhandahåller steg som vi kan lägga till i Selenium Skript för att hantera ovanstående situation "Otillförlitlig anslutning."
SSL-certifikatfelhantering in Firefox
För hantering av SSL-certifikatfel i Firefoxmåste vi använda önskade funktioner Selenium Webdriver och följ följande steg.
Steg 1) Först måste vi skapa en ny firefox-profil säg "min profil". Du kan hänvisa till Google för att lära dig "Hur man skapar" firefox-profil. Det är enkelt och lätt.
Steg 2) Gå nu till myProfile i skriptet enligt nedan och skapa FirefoxProfilobjekt.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Steg 3) Nu måste vi ställa in "setAcceptUntrustedCertificates"Och"setAssumeUntrustedCertificateIssuer” fastigheter i Elden Fox profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Steg 4) Använd nu EldenFox profil i EldenFox förarobjekt.
WebDriver driver = new FirefoxDriver (ffProfile)
Anmärkningar: "setAcceptUntrustedCertificates" och "setAssumeUntrustedCertificateIssuer" är möjligheter att hantera certifikatfel i webbläsare.
SSL-certifikatfelhantering i Chrome
För att hantera SSL-fel i Chrome måste vi använda önskade funktioner för Selenium Webdriver. Koden nedan hjälper till att acceptera alla SSL-certifikat i chrome, och användaren kommer inte att få något SSL-certifikatrelaterat fel med denna kod.
Vi måste skapa en instans av klassen DesiredCapabilities enligt nedan:
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
SSL-certifikatfelhantering i IE
Till skillnad från att hantera SSL-certifikat i webbläsaren Chrome och Firefox, i IE kan du behöva hantera det med javascript.
För att hantera SSL-certifikat i IE kan du hantera denna situation på två sätt,
- I detta kommer du att klicka på länken "Fortsätt till denna webbplats (rekommenderas inte)". I det följande kommer vi att se hur man hanterar SSL-fel i IE.
Observera SSL-certifikatfel i IE-webbläsaren, du hittar länken "Fortsätt till denna webbplats (rekommenderas ej)". Den här länken har ID:t "Åsidosätt länk". Du kan se ID:t i HTML-läge med F12.
Klicka på länken med metoden driver.navigate() med JavaScript som nedan :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- Den andra metoden är ganska lik chrome SSL-hanteringskod
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Ovanstående kod hjälper till att hantera SSL-certifikatfel i IE.
Sammanfattning
- SSL (Secure Sockets Layer) är ett standard säkerhetsprotokoll för att upprätta en säker anslutning mellan servern och klienten
- Webbläsaren och servern använder SSL-certifikatmekanismen för att kunna upprätta en säker anslutning.
- SSL fungerar genom en kombination av program och kryptering/dekrypteringsrutin som finns på webbserverdatorn och webbserverns webbläsare.
- När säker anslutning inte upprättas mellan servern och klienten på grund av certifikatet kommer SSL-certifikatfel att uppstå
- Behöver justera vårt skript på ett sådant sätt att det tar hand om SSL Undantag/fel av sig själv Selenium Webb-drivrutin.