Hoe om te gaan met een SSL-certificaat in Selenium

SSL-certificaat in 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-certificaat (Secure Socket Layer) zorgt voor een veilige transformatie van gegevens binnen de server en clientapplicatie met behulp van een sterke coderingsstandaard of digitale handtekening. Men moet een SSL-certificaat of een code-ondertekeningscertificaat 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 Mobile telefoon via e-commercesite zoals Flipkart of Amazon.

Wat gebeurt er tussen de webbrowser en de server

  1. Een browser probeert verbinding te maken met een website die is beveiligd met SSL. De browser vraagt ​​de webserver om zichzelf te identificeren
  2. De server stuurt de browser een kopie van zijn SSL-certificaat
  3. De browser verifieert of het SSL-certificaat echt is. Als dat zo is, stuurt het een bericht naar de server
  4. De server stuurt een digitaal ondertekende bevestiging terug om een ​​SSL-gecodeerde sessie te starten
  5. De gecodeerde gegevens worden gedeeld tussen de server en de browser

Daarbij moet u gevoelige informatie verzenden, zoals creditcardnummers of inloggegevens, en dat moet op een veilige manier worden verzonden, zodat deze niet kan worden gehackt of onderschept.

Bij voorbeeld

  1. Type https://netbanking.hdfcbank.com/netbanking/ .
  2. Druk op Enter.
  3. U ziet een groene adresbalk in de browser, zoals hieronder: -

Voordelen van SSL-certificaat

Hoe zorgt het SSL-certificaat voor een veilige verbinding?

SSL-certificaat Creëer een veilige verbinding

  1. browser verzendt een HTTPS-verzoek naar de server.
  2. 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.
  3. 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.
  4. Als de browser het certificaat vertrouwt, wordt er een gecodeerde sessie tot stand gebracht tussen de server en de browser.
  5. 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: -

  1. Eerst moet u een CSR-verzoek (create a Certificate Signing Request) aanmaken.
  2. CSR-verzoek creëert een CSR-gegevensbestand, dat wordt verzonden naar de uitgever van het SSL-certificaat, bekend als CA (Certificate Authority).
  3. De CA gebruikt de CSR-gegevensbestanden om een ​​SSL-certificaat voor uw server te maken.
  4. Nadat u het SSL-certificaat heeft ontvangen, moet u het op uw server installeren.
  5. 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.

Proces voor het verkrijgen van een SSL-certificaat

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.

  1. Onderwerp dat de identiteit van de website-eigenaar is.
  2. Geldigheidsinformatie: een publieke en een private sleutel.

De privé- en openbare sleutel zijn twee uniek gerelateerde cryptografische sleutels (cijfers). Wat met een publieke sleutel is gecodeerd, mag alleen met een privésleutel worden gedecodeerd.

SSL-certificaten zijn geverifieerd

Wanneer er vanwege het certificaat geen veilige verbinding tot stand kan worden gebracht tussen de server en de client, volgt u onderstaande stappenwing SSL-certificaatfout zal zich manifesteren.

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

  1. FireFox - Deze verbinding is niet vertrouwd
  1. Google Chrome -Deze sitebeveiliging wordt niet vertrouwd
  1. Internet Explorer (IE) – Dit beveiligingscertificaat dat door deze website wordt gepresenteerd, werd niet vertrouwd door een vertrouwde certificeringsinstantie (CA)

Soorten SSL-certificaatfouten

Hoe om te gaan met een SSL-certificaatfout met Selenium Webdriver

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 de driverinstantie van Selenium Webdriver te configureren. Via de gewenste mogelijkheden kan men alle stuurprogramma-instanties zoals ChromeDriver configureren, FirefoxStuurprogramma en Internet Explorer.

Vanaf nu hebben we geen specifieke URL om het bovenstaande scenario te creëren, maar ik geef stappen die we kunnen toevoegen in het 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 Selenium Webdriver gebruiken en de volgende stappen volgenwing stappen.

Stap 1) Eerst moeten we een nieuwe maken firefox profiel zeg “mijn profiel“. U kunt Google raadplegen voor meer informatie over 'Hoe te creëren' firefox profiel. 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 de FireFox profiel in de FireFox 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 Selenium Webdriver gebruiken. 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:

  1. Hierin klikt u op de link “Ga verder naar deze website (niet aanbevolen)”. In het vervolgwing we zullen zien hoe we met SSL-fouten in IE kunnen omgaan.

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.

SSL-certificaatfoutafhandeling in IE

Klik op de link met behulp van de driver.navigate()-methode met JavaScript zoals hieronder :-

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
  1. 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.

Samengevat

  • 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 via het Selenium-webstuurprogramma.