Come gestire il certificato SSL in Selenium WebDriver

Sommario:

Anonim

Cos'è il certificato SSL?

SSL (Secure Sockets Layer) è un protocollo di sicurezza standard per stabilire una connessione sicura tra il server e il client che è un browser.

Il certificato SSL (Secure Socket Layer) garantisce la trasformazione sicura dei dati attraverso il server e l'applicazione client utilizzando uno standard di crittografia avanzata o una firma digitale. È necessario installare un certificato SSL o un certificato di firma del codice.

In questo tutorial imparerai-

  • Cos'è il certificato SSL?
  • Vantaggi del certificato SSL
  • In che modo il certificato SSL crea una connessione protetta
  • Tipi di certificati SSL
  • Come vengono verificati i certificati SSL
  • Tipi di errore del certificato SSL
  • Come gestire l'errore del certificato SSL utilizzando Selenium Webdriver
  • Gestione degli errori del certificato SSL in Firefox
  • Gestione degli errori del certificato SSL in Chrome
  • Gestione degli errori del certificato SSL in IE

Vantaggi del certificato SSL

Ci sono numerosi vantaggi nell'usare il certificato SSL come,

  • Si può aumentare la fiducia dei propri utenti e clienti per aumentare rapidamente la crescita del business
  • Questi certificati aiutano a proteggere le transazioni online e le informazioni sensibili dei clienti come i dati della carta di credito / debito, ecc.
  • Il certificato di firma tende a ottenere un numero massimo di download e buone recensioni da parte degli utenti.

I siti Web protetti da SSL iniziano con https: // e puoi vedere un'icona a forma di lucchetto o una barra degli indirizzi verde se la connessione è stabilita in modo sicuro.

Ad esempio, se vuoi fare qualche transazione tramite net banking o vuoi acquistare un telefono cellulare tramite un sito di e-commerce come Flipkart o Amazon.

Cosa succede tra il browser Web e il server

  1. Un browser tenta di connettersi a un sito Web protetto con SSL. Il browser richiede al server web di identificarsi
  2. Il server invia al browser una copia del proprio certificato SSL
  3. Il browser verifica se il certificato SSL è autentico. In tal caso, invia un messaggio al server
  4. Il server restituisce una conferma con firma digitale per avviare una sessione crittografata SSL
  5. I dati crittografati vengono condivisi tra il server e il browser

In tal modo, è necessario trasmettere informazioni sensibili come numeri di carta di credito o credenziali di accesso e che devono essere trasmesse in modo sicuro in modo che non possano essere violate o intercettate.

Per esempio

  1. Digita https://netbanking.hdfcbank.com/netbanking/ .
  2. Premi Invio.
  3. Vedrai una barra degli indirizzi verde nel browser come di seguito: -

In che modo il certificato SSL crea una connessione protetta

  1. Il browser invia la richiesta HTTPS al server.
  2. Ora il server deve fornire un'identificazione al browser per dimostrare che è affidabile. Questo può essere fatto inviando una copia del suo certificato SSL al browser.
  3. Ogni browser ha il proprio elenco di CA attendibili. Il browser controlla la radice del certificato rispetto al suo elenco di CA attendibili e che il certificato non sia scaduto, non sia stato revocato e che il nome comune sia valido per il sito Web a cui si connette.
  4. Se il browser considera attendibile il certificato, viene creata una sessione crittografata tra il server e il browser.
  5. Il server e il browser possono inviare messaggi crittografati

Tipi di certificati SSL

Il browser e il server utilizzano il meccanismo del certificato SSL per poter stabilire una connessione sicura. Questa connessione implica la verifica di tre tipi di certificati.

  • Radice
  • Intermedio
  • Certificato del server

Processo per ottenere il certificato SSL

Il processo per ottenere il certificato SSL include i seguenti passaggi: -

  1. Innanzitutto, è necessario creare una richiesta CSR (creare una richiesta di firma del certificato).
  2. La richiesta CSR crea un file di dati CSR, che viene inviato all'emittente del certificato SSL noto come CA (Autorità di certificazione).
  3. La CA utilizza i file di dati CSR per creare il certificato SSL per il server.
  4. Dopo aver ricevuto il certificato SSL, devi installarlo sul tuo server.
  5. È inoltre necessario installare un certificato intermedio che colleghi il tuo certificato SSL al certificato radice della CA.

L'immagine sotto rappresenta tutti e tre i certificati: Root, Intermediate e Server Certificate.

Come vengono verificati i certificati SSL

SSL funziona attraverso una combinazione di programmi e routine di crittografia / decrittografia che esistono sul computer del server web e sul browser del server web.

Il certificato SSL contiene fondamentalmente le seguenti informazioni.

  1. Oggetto che è l'identità del proprietario del sito web.
  2. Informazioni sulla validità: una chiave pubblica e una privata.

La chiave privata e quella pubblica sono due chiavi crittografiche (numeri) correlate in modo univoco. Qualunque cosa sia crittografata da una chiave pubblica può essere decrittografata solo da una chiave privata.

Quando non viene stabilita una connessione sicura tra il server e il client a causa del certificato, verrà visualizzato il seguente errore del certificato SSL.

Tipi di errore del certificato SSL

Supponi di digitare una richiesta https nel browser e di ricevere un messaggio del tipo "Questa connessione non è attendibile" o "Il certificato di sicurezza del sito non è attendibile" a seconda del browser che stai utilizzando. Quindi tale errore è soggetto all'errore del certificato SSL.

Ora, se il browser non è in grado di stabilire una connessione protetta con il certificato richiesto, il browser genererà l'eccezione "Connessione non attendibile" come di seguito e chiederà all'utente di intraprendere l'azione appropriata.

I tipi di errore che probabilmente vedrai a causa del certificato in diversi browser potrebbero essere simili a questo

  1. FireFox : questa connessione non è attendibile
  1. Google Chrome: la sicurezza di questo sito non è attendibile
  1. Internet Explorer (IE) : questo certificato di sicurezza presentato da questo sito Web non è stato considerato attendibile da un'autorità di certificazione (CA) attendibile

Come gestire l'errore del certificato SSL utilizzando Selenium Webdriver

Supponiamo di aver scritto alcuni script di test e durante l'esecuzione dello script, ci siamo trovati nella situazione come "Connessione non attendibile" sopra, quindi come gestiamo l'eccezione esclusivamente attraverso l'automazione.

In tal caso, dobbiamo modificare il nostro script in modo tale che si occupi da solo dell'eccezione SSL.

Gli script devono essere modificati in base al tipo di istanza del browser che stiamo utilizzando. Questi quando le capacità desiderate vengono in foto.

Le funzionalità desiderate vengono utilizzate per configurare l'istanza del driver di Selenium Webdriver. Attraverso le funzionalità desiderate, è possibile configurare tutte le istanze del driver come ChromeDriver, FirefoxDriver e Internet Explorer.

Al momento non abbiamo alcun URL specifico per creare lo scenario di cui sopra, ma sto fornendo passaggi che possiamo aggiungere nello script Selenium per gestire la situazione di cui sopra "Connessione non attendibile".

Gestione degli errori del certificato SSL in Firefox

Per gestire l'errore del certificato SSL in Firefox, dobbiamo utilizzare le funzionalità desiderate di Selenium Webdriver e seguire i seguenti passaggi.

Step 1) : Per prima cosa dobbiamo creare un nuovo profilo firefox dire " myProfile ". Puoi fare riferimento a Google per imparare "Come creare" il profilo di Firefox. È semplice e facile.

Passaggio 2) : Ora accedi a myProfile nello script come di seguito e crea l'oggetto FirefoxProfile.

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

Passaggio 3) : Ora dobbiamo impostare le proprietà " setAcceptUntrustedCertificates " e " setAssumeUntrustedCertificateIssuer " nel profilo Fire Fox.

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

Passaggio 4) : ora utilizza il profilo FireFox nell'oggetto driver FireFox.

Driver WebDriver = nuovo FirefoxDriver (ffProfile) 

Nota : "setAcceptUntrustedCertificates" e "setAssumeUntrustedCertificateIssuer " sono funzionalità per gestire gli errori dei certificati nei browser web.

Gestione degli errori del certificato SSL in Chrome

Per gestire l'errore SSL in Chrome, dobbiamo utilizzare le funzionalità desiderate di Selenium Webdriver. Il codice seguente aiuterà ad accettare tutto il certificato SSL in Chrome e l'utente non riceverà alcun errore relativo al certificato SSL utilizzando questo codice.

Dobbiamo creare un'istanza della classe DesiredCapabilities come di seguito: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)Driver WebDriver = nuovo ChromeDriver (handlSSLErr);

Gestione degli errori del certificato SSL in IE

A differenza della gestione dei certificati SSL nel browser Chrome e Firefox, in IE potrebbe essere necessario gestirli utilizzando javascript.

Per gestire il certificato SSL in IE, puoi gestire questa situazione in due modi,

  1. In questo, farai clic sul link " Continua su questo sito Web (sconsigliato)". Di seguito vedremo come gestire l'errore SSL in IE.

Osserva l'errore del certificato SSL nel browser IE troverai il link "Continua su questo sito web (sconsigliato)". Questo link ha l'ID "override link". Puoi visualizzare l'ID in modalità HTML usando F12.

Fare clic sul collegamento utilizzando il metodo driver.navigate () con JavaScript come di seguito: -

driver.navigate () .to ("javascript: document.getElementById ('overridelink'). click ()");
  1. Il secondo metodo è abbastanza simile al codice Chrome di gestione SSL
Capacità DesiredCapabilities = nuove DesiredCapabilities ();capacità.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);System.setProperty ("webdriver.ie.driver", "IEDriverServer.exe");Driver WebDriver = nuovo InternetExplorerDriver (funzionalità);

Il codice sopra aiuterà a gestire l'errore del certificato SSL in IE.

Sommario:

  • SSL (Secure Sockets Layer) è un protocollo di sicurezza standard per stabilire una connessione sicura tra il server e il client
  • Il browser e il server utilizzano il meccanismo del certificato SSL per poter stabilire una connessione sicura.
  • SSL funziona attraverso una combinazione di programmi e routine di crittografia / decrittografia che esistono sul computer del server web e sul browser del server web.
  • Quando non viene stabilita una connessione sicura tra il server e il client a causa del certificato, si verificherà un errore del certificato SSL
  • È necessario modificare il nostro script in modo tale che si occupi da solo dell'eccezione / errore SSL tramite il driver Web Selenium.