Hoe u met een SSL-certificaat omgaat Selenium
SSL-certificaat binnen Selenium
SSL (Secure Sockets Layer) is een standaard beveiligingsprotocol voor het tot stand brengen van een veilige verbinding tussen de server en de client, een browser.
SSL (Secure Socket Layer) Certificaat zorgt voor veilige transformatie van data over de server en client applicatie met behulp van sterke encryptie standaard of digitale handtekening. Men moet een SSL certificaat of een code signing certificaat installeren.
Voordelen van SSL-certificaat
Er zijn een aantal voordelen verbonden aan het gebruik van een SSL-certificaat, zoals:
- Men kan het vertrouwen van hun gebruikers en klanten vergroten om de groei van het bedrijf snel te vergroten
- Deze certificaten helpen bij het beveiligen van online transacties en gevoelige informatie van klanten, zoals creditcard-/debetkaartgegevens, enz.
- Het ondertekenen van een certificaat krijgt doorgaans een maximaal aantal downloads en goede recensies van gebruikers.
SSL-beveiligde websites beginnen met https://en u ziet een slotpictogram of een groene adresbalk als de verbinding veilig tot stand is gebracht.
Als u bijvoorbeeld een transactie via internetbankieren wilt doen of een Telefoonnummer telefoon via e-commercesite zoals Flipkart of Amazon.
Wat gebeurt er tussen de webbrowser en de server
- Een browser probeert verbinding te maken met een website die is beveiligd met SSL. De browser vraagt de webserver om zichzelf te identificeren
- De server stuurt de browser een kopie van zijn SSL-certificaat
- De browser verifieert of het SSL-certificaat echt is. Als dat zo is, stuurt het een bericht naar de server
- De server stuurt een digitaal ondertekende bevestiging terug om een SSL-gecodeerde sessie te starten
- De gecodeerde gegevens worden gedeeld tussen de server en de browser
Hierbij moet u gevoelige informatie, zoals creditcardnummers of inloggegevens, veilig versturen, zodat deze niet gehackt of onderschept kan worden.
Bij voorbeeld
- Type https://netbanking.hdfcbank.com/netbanking/ .
- Druk op Enter.
- U ziet een groene adresbalk in de browser, zoals hieronder: -
Hoe zorgt het SSL-certificaat voor een veilige verbinding?
- browser verzendt een HTTPS-verzoek naar de server.
- Nu moet de server een identificatie aan de browser verstrekken om te bewijzen dat deze wordt vertrouwd. Dit kan gedaan worden door een kopie van het SSL-certificaat naar de browser te sturen.
- Elke browser heeft zijn eigen lijst met vertrouwde CA's. De browser controleert de certificaatroot aan de hand van de lijst met vertrouwde CA's en controleert of het certificaat niet is verlopen, niet is ingetrokken en of de algemene naam geldig is voor de website waarmee het verbinding maakt.
- Als de browser het certificaat vertrouwt, wordt er een gecodeerde sessie tot stand gebracht tussen de server en de browser.
- Server en browser kunnen gecodeerde berichten verzenden
Typen SSL-certificaten
Browser en de server gebruiken het SSL-certificaatmechanisme om een veilige verbinding tot stand te kunnen brengen. Deze verbinding omvat de verificatie van drie soorten certificaten.
- Root
- Gemiddeld
- Servercertificaat
Proces voor het verkrijgen van een SSL-certificaat
Het proces voor het verkrijgen van een SSL-certificaat omvat de onderstaande stappen: -
- Eerst moet u een CSR-verzoek (create a Certificate Signing Request) aanmaken.
- CSR-verzoek creëert een CSR-gegevensbestand, dat wordt verzonden naar de uitgever van het SSL-certificaat, bekend als CA (Certificate Authority).
- De CA gebruikt de CSR-gegevensbestanden om een SSL-certificaat voor uw server te maken.
- Nadat u het SSL-certificaat heeft ontvangen, moet u het op uw server installeren.
- Er moet ook een tussencertificaat worden geïnstalleerd dat uw SSL-certificaat koppelt aan het basiscertificaat van CA.
De onderstaande afbeelding vertegenwoordigt alle drie de certificaten Root-, tussen- en servercertificaat.
Hoe SSL-certificaten worden geverifieerd
SSL werkt via een combinatie van programma's en coderings-/decoderingsroutine die op de webservercomputer en de webserverbrowser aanwezig zijn.
SSL-certificaat bevat in principe onderstaande informatie.
- Onderwerp dat de identiteit van de website-eigenaar is.
- Geldigheidsinformatie: een publieke en een private sleutel.
De privé- en openbare sleutel zijn twee uniek gerelateerde cryptografische sleutels (getallen). Alles wat met een openbare sleutel wordt gecodeerd, kan alleen met een privésleutel worden gedecodeerd.
Wanneer er vanwege het certificaat geen beveiligde verbinding tot stand kan worden gebracht tussen de server en de client, wordt de volgende SSL-certificaatfout weergegeven.
Soorten SSL-certificaatfouten
Stel dat u een https-verzoek in de browser typt en een bericht krijgt zoals 'Deze verbinding is niet vertrouwd' of 'Het beveiligingscertificaat van de site wordt niet vertrouwd', afhankelijk van de browser die u gebruikt. Dan is een dergelijke fout onderhevig aan een SSL-certificaatfout.
Als de browser nu geen beveiligde verbinding tot stand kan brengen met het aangevraagde certificaat, zal de browser de uitzondering “Niet-vertrouwde verbinding” genereren, zoals hieronder, en de gebruiker vragen passende actie te ondernemen.
De soorten fouten die u waarschijnlijk tegenkomt als gevolg van certificaten in verschillende browsers kunnen ongeveer als volgt zijn
- BrandFox - Deze verbinding is niet vertrouwd
- Google Chrome -Deze sitebeveiliging wordt niet vertrouwd
- Internet Explorer (IE) – Dit beveiligingscertificaat dat door deze website wordt gepresenteerd, werd niet vertrouwd door een vertrouwde certificeringsinstantie (CA)
Hoe om te gaan met SSL-certificaatfouten met behulp van Selenium Webstuurprogramma
Stel dat we een aantal testscripts hebben geschreven en tijdens het uitvoeren van het script de bovenstaande situatie als "Niet-vertrouwde verbinding" tegenkomen, hoe gaan we dan om met de uitzondering puur via automatisering.
In dat geval moeten we ons script zo aanpassen dat het zelf voor SSL Exception zorgt.
De scripts moeten worden aangepast aan het type browserinstantie dat we gebruiken. Deze wanneer gewenste mogelijkheden in beeld komen.
Gewenste mogelijkheden worden gebruikt om het stuurprogramma-exemplaar van te configureren Selenium Webdriver. Via de gewenste mogelijkheden kan men alle stuurprogramma-instanties zoals ChromeDriver configureren, FirefoxStuurprogramma en Internet Explorer.
Op dit moment hebben we geen specifieke URL om het bovenstaande scenario te maken, maar ik geef stappen die we kunnen toevoegen in de Selenium Script om de bovenstaande situatie ‘Niet-vertrouwde verbinding’ af te handelen.
Foutverwerking SSL-certificaat Firefox
Voor het afhandelen van SSL-certificaatfouten in Firefox, moeten we de gewenste mogelijkheden van gebruiken Selenium Webdriver en volg de volgende stappen.
Stap 1) Eerst moeten we een nieuw Firefox-profiel aanmaken, bijvoorbeeld: "mijn profiel“. U kunt Google raadplegen om te leren “Hoe u een Firefox-profiel maakt”. Het is eenvoudig en gemakkelijk.
Stap 2) Ga nu naar myProfile in het onderstaande script en maak het FirefoxProfielobject.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Stap 3) Nu moeten we instellen “setAcceptUntrustedCertificates"En"setAssumeUntrustedCertificateIssuer” eigenschappen in de Brand Fox profiel.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Stap 4) Gebruik nu het vuurFox profiel in het vuurFox bestuurder-object.
WebDriver driver = new FirefoxDriver (ffProfile)
Note: “setAcceptUntrustedCertificates” en “setAssumeUntrustedCertificateIssuer" zijn mogelijkheden om certificaatfouten in webbrowsers af te handelen.
SSL-certificaatfoutafhandeling in Chrome
Voor het afhandelen van SSL-fouten in Chrome moeten we de gewenste mogelijkheden van gebruiken Selenium Webdriver. De onderstaande code helpt om alle SSL-certificaten in Chrome te accepteren en de gebruiker ontvangt bij gebruik van deze code geen SSL-certificaatgerelateerde fouten.
We moeten een exemplaar van de klasse DesiredCapabilities maken, zoals hieronder: -
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
SSL-certificaatfoutafhandeling in IE
In tegenstelling tot het verwerken van SSL-certificaten in de Chrome-browser en Firefox, in IE moet u dit mogelijk met javascript afhandelen.
Om met een SSL-certificaat in IE om te gaan, kunt u deze situatie op twee manieren aanpakken:
- Hierin klikt u op de link “Ga verder naar deze website (niet aanbevolen)”. Hieronder leggen we uit hoe u SSL-fouten in Internet Explorer kunt oplossen.
Let op een SSL-certificaatfout in de IE-browser. U vindt de link 'Doorgaan naar deze website (niet aanbevolen)'. Deze link heeft de ID 'overschrijflink'. U kunt de ID in HTML-modus bekijken met behulp van F12.
Klik op de link met behulp van de driver.navigate()-methode met JavaScript zoals hieronder :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- De tweede methode lijkt veel op Chrome SSL Handling-code
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
De bovenstaande code helpt bij het afhandelen van SSL-certificaatfouten in IE.
Samenvatting
- SSL (Secure Sockets Layer) is een standaard beveiligingsprotocol voor het tot stand brengen van een veilige verbinding tussen de server en de client
- Browser en de server gebruiken het SSL-certificaatmechanisme om een veilige verbinding tot stand te kunnen brengen.
- SSL werkt via een combinatie van programma's en coderings-/decoderingsroutine die op de webservercomputer en de webserverbrowser aanwezig zijn.
- Wanneer er geen beveiligde verbinding tot stand is gebracht tussen de server en de client vanwege een certificaat, zal er een SSL-certificaatfout optreden
- We moeten ons script zo aanpassen dat het zelf SSL-uitzonderingen/fouten oplost Selenium Webstuurprogramma.