Hoe u met een SSL-certificaat omgaat Selenium
โก Slimme samenvatting
SSL-certificaatfouten stoppen een Selenium Test het moment waarop een browser een onbetrouwbaar of verlopen certificaat weigert, dus elk WebDriver-script heeft een browserspecifieke functionaliteit nodig die het certificaat accepteert en de automatisering laat doorgaan.
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.
Een SSL-certificaat beschermt gegevens die tussen de server en de clientapplicatie worden uitgewisseld met sterke encryptie en een digitale handtekening. De website-eigenaar installeert ofwel een SSL-certificaat ofwel een codeondertekeningscertificaat.
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
- 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
Kaartnummers en inloggegevens worden tijdens die sessie verzonden, dus de uitwisseling moet van begin tot eind versleuteld blijven en mag niet worden onderschept.
Het hangslotje en de adresbalk hieronder bevestigen bijvoorbeeld dat het certificaat is geaccepteerd.
- 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?
Het onderstaande diagram tracDe handdruk wordt beschreven, en de genummerde stappen die volgen, leggen elke uitwisseling uit.
- 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รฉsleutel en de publieke sleutel zijn twee uniek aan elkaar gerelateerde cryptografische sleutels (getallen). Alles wat met een publieke sleutel is versleuteld, kan alleen met een privรฉsleutel worden ontsleuteld. Een browser toont deze velden wanneer het certificaat wordt gecontroleerd, zoals hieronder.
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 typt en de browser antwoordt met 'Deze verbinding is niet vertrouwd' of 'Het beveiligingscertificaat van de site wordt niet vertrouwd'. De browser kon geen beveiligde verbinding tot stand brengen met het gepresenteerde certificaat, dus stopt deze en vraagt โโde gebruiker om 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 De beveiliging van deze site is niet betrouwbaar.
- Internet Explorer (IE) โ Dit beveiligingscertificaat dat door deze website wordt gepresenteerd, werd niet vertrouwd door een vertrouwde certificeringsinstantie (CA)
De onderstaande schermafbeelding laat zien wat er tussen de regels staat wanneer een niet-vertrouwd certificaat wordt gebruikt.
Hoe om te gaan met SSL-certificaatfouten met behulp van Selenium Webstuurprogramma
Stel dat het testscript Dit leidt naar de pagina 'Onbetrouwbare verbinding' hierboven. Het script moet worden aangepast zodat het de SSL-uitzondering zelf afhandelt, puur via SSL. automatisering.
De wijziging is afhankelijk van de gebruikte browserinstantie, en dit is waar gewenste mogelijkheden (Desired Capabilities) in beeld komen. Gewenste mogelijkheden (Desired Capabilities) configureren de driverinstantie van Selenium Webdriver, inclusief ChromeDriver, FirefoxDriver en Internet Explorer.
De onderstaande stappen kunnen worden toegevoegd aan een Selenium Script om de melding "Onbetrouwbare verbinding" voor elke browser op te lossen.
โ ๏ธ Selenium Opmerking voor 4: De klasse DesiredCapabilities werd verwijderd in Selenium 4. De browseroptiesklassen dragen nu dezelfde instelling over via รฉรฉn enkele W3C-functionaliteit. acceptInsecureCerts.
| browser | Selenium 4 les | Bel |
|---|---|---|
| Chroom | ChromeOpties | setAcceptInsecureCerts(true) |
| Firefox | Firefoxopties | setAcceptInsecureCerts(true) |
| rand | Randopties | setAcceptInsecureCerts(true) |
| Safari | Javascriptexecuteur | tijdelijk omzeilingsscript |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
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 nieuwe aanmaken. Firefox profielen zeggen "mijn profiel'.
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 de eigenschappen "setAcceptUntrustedCertificates" en "setAssumeUntrustedCertificateIssuer" instellen in Fire. 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)
Let op: "setAcceptUntrustedCertificates" en "setAssumeUntrustedCertificateIssuerโDit zijn mogelijkheden om certificaatfouten in webbrowsers af te handelen.
โ ๏ธ Versie-opmerking: De bovenstaande profielgebaseerde code is gericht op Selenium 2 en Selenium 3. Op Selenium 4. Een profiel is gekoppeld via FirefoxOpties, en Firefox Accepteert standaard onveilige certificaten.
SSL-certificaatfoutafhandeling in Chrome
Om SSL-fouten in Chrome af te handelen, accepteert het onderstaande DesiredCapabilities-object elk SSL-certificaat, zodat de gebruiker tijdens het uitvoeren geen certificaatwaarschuwing te zien krijgt.
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);
โ ๏ธ Versie-opmerking: CapabilityType.ACCEPT_SSL_CERTS behoort tot het oude JSON Wire Protocol. Vervang dit door het eerder getoonde ChromeOptions-fragment wanneer u het uitvoert. Selenium 4.
SSL-certificaatfoutafhandeling in IE
In tegenstelling tot het verwerken van SSL-certificaten in de Chrome-browser en FirefoxIn Internet Explorer moet je dit mogelijk op een andere manier afhandelen. javascript.
Om een โโSSL-certificaat in Internet Explorer te beheren, zijn er twee manieren.
Methode 1) Klik op de link 'Doorgaan naar deze website (niet aanbevolen)' in de tussenpagina. Deze link heeft de ID 'overridelink', wat u kunt controleren in het HTML-venster dat u opent met F12, zoals de onderstaande schermafbeelding laat zien.
Klik op de link met behulp van de driver.navigate()-methode met JavaHet script ziet er als volgt uit:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Methode 2) De tweede methode lijkt sterk op de code voor SSL-afhandeling in Chrome.
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.
โ ๏ธ Versie-opmerking: Internet Explorer 11 is in juni 2022 uitgefaseerd. Voer hetzelfde scenario uit tegen Microsoft Edge met EdgeOptions, of start Edge in IE-modus wanneer een oudere toepassing dit nog vereist.





