Hoe om te gaan met een SSL-certificaat in Selenium WebDriver

Inhoudsopgave:

Anonim

Wat is een SSL-certificaat?

SSL (Secure Sockets Layer) is een standaard beveiligingsprotocol voor het tot stand brengen van een veilige verbinding tussen de server en de client die een browser is.

SSL-certificaat (Secure Socket Layer) zorgt voor veilige transformatie van gegevens over de server en clienttoepassing met behulp van een sterke coderingsstandaard of digitale handtekening. Men moet een SSL-certificaat of een certificaat voor het ondertekenen van code installeren.

In deze tutorial leer je-

  • Wat is een SSL-certificaat?
  • Voordelen van SSL-certificaat
  • Hoe brengt het SSL-certificaat een beveiligde verbinding tot stand?
  • Soorten SSL-certificaten
  • Hoe SSL-certificaten worden geverifieerd
  • Typen SSL-certificaatfout
  • Omgaan met SSL-certificaatfout met Selenium Webdriver
  • SSL-certificaatfoutafhandeling in Firefox
  • Foutafhandeling SSL-certificaat in Chrome
  • SSL-certificaatfoutafhandeling in IE

Voordelen van SSL-certificaat

Er zijn een aantal voordelen van 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 versterken
  • Deze certificaten helpen om online transacties en gevoelige informatie van klanten te beveiligen, zoals creditcard- / debetkaartgegevens, enz.
  • Het ondertekeningscertificaat krijgt de neiging om een ​​maximaal aantal downloads en goede recensies van gebruikers te krijgen.

SSL-beveiligde websites beginnen met https: // en u kunt een slotpictogram of een groene adresbalk zien als de verbinding veilig tot stand is gebracht.

Als u bijvoorbeeld een transactie wilt doen via internetbankieren of een mobiele telefoon wilt kopen via een 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 controleert of het SSL-certificaat echt is. Als dat het geval is, stuurt het een bericht naar de server
  4. De server stuurt een digitaal ondertekende bevestiging terug om een ​​met SSL gecodeerde sessie te starten
  5. De versleutelde gegevens worden gedeeld tussen de server en de browser

Daarbij moet u gevoelige informatie, zoals creditcardnummers of inloggegevens, verzenden en die moet veilig worden verzonden, zodat deze niet kan worden gehackt of onderschept.

Bijvoorbeeld

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

Hoe brengt het SSL-certificaat een beveiligde verbinding tot stand?

  1. Browser stuurt 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 root van het certificaat aan de hand van de lijst met vertrouwde CA's en of het certificaat niet verlopen is, niet is ingetrokken en dat de algemene naam geldig is voor de website waarmee het verbinding maakt.
  4. Als de browser het certificaat vertrouwt, wordt er een gecodeerde sessie gemaakt tussen de server en de browser.
  5. Server en browser kunnen gecodeerde berichten verzenden

Soorten SSL-certificaten

De browser en de server gebruiken een SSL-certificaatmechanisme om een ​​veilige verbinding tot stand te kunnen brengen. Deze verbinding omvat verificatie van drie soorten certificaten.

  • Wortel
  • Gemiddeld
  • Servercertificaat

Proces om een ​​SSL-certificaat te krijgen

Het proces om een ​​SSL-certificaat te verkrijgen omvat onderstaande stappen: -

  1. Eerst moet u een CSR-aanvraag (een aanvraag voor ondertekening van een certificaat maken) aanmaken.
  2. CSR-verzoek maakt CSR-gegevensbestand aan dat wordt verzonden naar de uitgever van het SSL-certificaat die bekend staat als CA (Certificate Authority).
  3. De CA gebruikt de CSR-gegevensbestanden om een ​​SSL-certificaat voor uw server te creëren.
  4. Nadat u het SSL-certificaat heeft ontvangen, moet u het op uw server installeren.
  5. Er moet ook een tussenliggend certificaat worden geïnstalleerd dat uw SSL-certificaat koppelt aan het basiscertificaat van de CA.

De onderstaande afbeelding geeft alle drie certificaten weer: het basiscertificaat, het tussencertificaat en het servercertificaat.

Hoe SSL-certificaten worden geverifieerd

SSL werkt door middel van een combinatie van programma's en codering / decoderingsroutine die bestaan ​​op de webservercomputer en webserverbrowser.

SSL-certificaat bevat in principe onderstaande informatie.

  1. Onderwerp dat de identiteit van de website-eigenaar is.
  2. Geldigheidsinformatie - een openbare en een privésleutel.

De private en publieke sleutel zijn twee uniek gerelateerde cryptografische sleutels (cijfers). Alles wat met een openbare sleutel is versleuteld, mag alleen met een privésleutel worden ontsleuteld.

Wanneer er geen beveiligde verbinding tot stand is gebracht tussen de server en de client vanwege het certificaat, zal de volgende SSL-certificaatfout optreden.

Typen SSL-certificaatfout

Stel dat u een https-verzoek in de browser typt en een bericht krijgt zoals "Deze verbinding is niet vertrouwd" of het "Het beveiligingscertificaat van de site is 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 gevraagde certificaat, zal de browser de uitzondering "Niet-vertrouwde verbinding" genereren, zoals hieronder, en de gebruiker vragen om passende maatregelen te nemen.

De soorten fouten die u waarschijnlijk te zien krijgt als gevolg van certificaten in verschillende browsers, kunnen er ongeveer zo uitzien

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

Omgaan met SSL-certificaatfout met Selenium Webdriver

Stel dat we een aantal testscripts hebben geschreven en tijdens het uitvoeren van het script, we in de situatie terechtkomen als "Niet-vertrouwde verbinding" hierboven, hoe gaan we dan met de uitzondering om, puur door automatisering.

In dat geval moeten we ons script zo aanpassen dat het zelf voor SSL Uitzondering zorgt.

De scripts moeten worden aangepast aan het type browserinstantie dat we gebruiken. Deze wanneer de gewenste mogelijkheden in beeld komen.

De gewenste mogelijkheden worden gebruikt om de driverinstantie van Selenium Webdriver te configureren. Via de gewenste mogelijkheden kan men alle driverinstanties zoals ChromeDriver, FirefoxDriver en Internet Explorer configureren.

Op dit moment hebben we geen specifieke URL om het bovenstaande scenario te maken, maar ik bied stappen die we kunnen toevoegen aan het Selenium-script om de bovenstaande situatie "Niet-vertrouwde verbinding" aan te pakken.

SSL-certificaatfoutafhandeling in Firefox

Voor het afhandelen van SSL-certificaatfouten in Firefox moeten we de gewenste mogelijkheden van Selenium Webdriver gebruiken en de volgende stappen volgen.

Stap 1) : Eerst moeten we een nieuw firefox-profiel maken, zeg " myProfile ". U kunt Google verwijzen om te leren hoe u een firefox-profiel aanmaakt. Het is eenvoudig en gemakkelijk.

Stap 2) : Open nu myProfile in het script zoals hieronder en maak het FirefoxProfile-object.

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

Stap 3) : Nu moeten we de eigenschappen " setAcceptUntrustedCertificates " en " setAssumeUntrustedCertificateIssuer " instellen in het Fire Fox-profiel.

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

Stap 4) : Gebruik nu het FireFox-profiel in het FireFox-stuurprogramma-object.

WebDriver-stuurprogramma = nieuwe FirefoxDriver (ffProfile) 

Opmerking : "setAcceptUntrustedCertificates" en "setAssumeUntrustedCertificateIssuer " zijn mogelijkheden om certificaatfouten in webbrowsers af te handelen.

Foutafhandeling SSL-certificaat in Chrome

Voor het afhandelen van SSL-fouten in Chrome moeten we de gewenste mogelijkheden van Selenium Webdriver gebruiken. De onderstaande code helpt om al het SSL-certificaat in Chrome te accepteren, en de gebruiker zal geen SSL-certificaatgerelateerde fout ontvangen met deze code.

We moeten een instantie van de DesiredCapabilities-klasse maken zoals hieronder: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)WebDriver-stuurprogramma = nieuwe ChromeDriver (handlSSLErr);

SSL-certificaatfoutafhandeling in IE

In tegenstelling tot het afhandelen van SSL-certificaten in de Chrome-browser en Firefox, moet u het in IE wellicht afhandelen met javascript.

Om een ​​SSL-certificaat in IE af te handelen, kunt u deze situatie op twee manieren afhandelen,

  1. Hierin klikt u op de link " Doorgaan naar deze website (niet aanbevolen)". In het volgende zullen we zien hoe om te gaan met SSL-fouten in IE.

Als u een SSL-certificaatfout opmerkt in de IE-browser, vindt u de link "Doorgaan naar deze website (niet aanbevolen)". Deze link heeft een ID "link overschrijven". U kunt de ID in HTML-modus bekijken met F12.

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

driver.navigate () .to ("javascript: document.getElementById ('overridelink'). click ()");
  1. De tweede methode lijkt veel op Chrome SSL Handling-code
DesiredCapabilities-mogelijkheden = nieuwe DesiredCapabilities ();capaciteiten.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);System.setProperty ("webdriver.ie.driver", "IEDriverServer.exe");WebDriver-stuurprogramma = nieuwe InternetExplorerDriver (mogelijkheden);

De bovenstaande code helpt bij het afhandelen van SSL-certificaatfouten in IE.

Overzicht:

  • SSL (Secure Sockets Layer) is een standaard beveiligingsprotocol voor het tot stand brengen van een veilige verbinding tussen de server en de client
  • De browser en de server gebruiken een SSL-certificaatmechanisme om een ​​veilige verbinding tot stand te kunnen brengen.
  • SSL werkt door middel van een combinatie van programma's en codering / decoderingsroutine die bestaan ​​op de webservercomputer en webserverbrowser.
  • Als er geen beveiligde verbinding tot stand is gebracht tussen de server en de client vanwege het certificaat, treedt er een SSL-certificaatfout op
  • Noodzaak om ons script zo aan te passen dat het zelf voor SSL Uitzondering / fout zorgt via Selenium Web driver.