Come gestire il certificato SSL in Selenium
Certificato SSL in Selenium
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 nell'applicazione server e client utilizzando uno standard di crittografia avanzato o una firma digitale. È necessario installare un certificato SSL o un certificato di firma del codice.
Vantaggi del certificato SSL
Esistono numerosi vantaggi nell'utilizzo del certificato SSL come,
- È possibile aumentare la fiducia dei propri utenti e clienti al fine di migliorare rapidamente la crescita del business
- Questi certificati aiutano a proteggere le transazioni online e le informazioni sensibili dei clienti come i dati delle carte 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 l'icona di un lucchetto o una barra degli indirizzi verde se la connessione è stabilita in modo sicuro.
Ad esempio, se desideri effettuare qualche transazione tramite net banking o desideri acquistare un file Mobile telefono tramite sito di e-commerce come Flipkart o Amazon.
Cosa succede tra il browser Web e il server
- Un browser tenta di connettersi a un sito Web protetto con SSL. Il browser richiede al server web di identificarsi
- Il server invia al browser una copia del suo certificato SSL
- Il browser verifica se il certificato SSL è autentico. In tal caso, invia un messaggio al server
- Il server restituisce un riconoscimento firmato digitalmente per avviare una sessione crittografata SSL
- 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 queste devono essere trasmesse in modo sicuro in modo che non possano essere hackerate o intercettate.
Per esempio
- Tipo https://netbanking.hdfcbank.com/netbanking/ .
- Hit Enter.
- Vedrai una barra degli indirizzi verde nel browser come di seguito: -
In che modo il certificato SSL crea una connessione sicura
- Browser invia la richiesta HTTPS al server.
- 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.
- Ciascun browser dispone del proprio elenco di CA attendibili. Il browser controlla la radice del certificato rispetto al suo elenco di CA attendibili e verifica che il certificato non sia scaduto, non revocato e che il nome comune sia valido per il sito Web a cui si sta connettendo.
- Se il browser considera attendibile il certificato, viene creata una sessione crittografata tra il server e il browser.
- 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. Questo collegamento prevede la verifica di tre tipologie di certificati.
- Radice
- Intermedio
- Certificato del server
Processo per ottenere il certificato SSL
Il processo per ottenere il certificato SSL include i seguenti passaggi: -
- Innanzitutto, è necessario creare una richiesta CSR (creare una richiesta di firma del certificato).
- La richiesta CSR crea un file di dati CSR, che viene inviato all'emittente del certificato SSL noto come CA (Certificate Authority).
- La CA utilizza i file di dati CSR per creare il certificato SSL per il tuo server.
- Dopo aver ricevuto il certificato SSL, devi installarlo sul tuo server.
- È inoltre necessario installare un certificato intermedio che colleghi il tuo certificato SSL al certificato radice della CA.
L'immagine seguente rappresenta tutti e tre i certificati: Certificato root, intermedio e server.
Come vengono verificati i certificati SSL
SSL funziona attraverso una combinazione di programmi e routine di crittografia/decrittografia esistenti sul computer del server Web e sul browser del server Web.
Il certificato SSL contiene fondamentalmente le seguenti informazioni.
- Oggetto che rappresenta l'identità del titolare del sito web.
- Informazioni sulla validità: una chiave pubblica e una privata.
La chiave privata e quella pubblica sono due chiavi crittografiche (numeri) correlate in modo univoco. Tutto ciò che viene crittografato con una chiave pubblica può essere decrittografato solo con una chiave privata.
Se 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 errori del certificato SSL
Supponiamo di digitare una richiesta https nel browser e di ricevere un messaggio come "Questa connessione non è attendibile" o "Il certificato di sicurezza del sito non è attendibile" a seconda del browser che stai utilizzando. Quindi tale errore è soggetto a un 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 potresti vedere a causa del certificato nei diversi browser potrebbero essere simili a questi
- AntincendioFox - Questa connessione non è sicura
- Google Chrome -La sicurezza di questo sito non è attendibile
- 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, di aver riscontrato la situazione di "Connessione non attendibile" sopra, quindi come gestiamo l'eccezione esclusivamente attraverso l'automazione.
In tal caso, dobbiamo adattare 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 visualizzate.
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 disponiamo di alcun URL specifico per creare lo scenario precedente, ma forniamo i passaggi che possiamo aggiungere nel Selenium Script per gestire la situazione di cui sopra "Connessione non attendibile".
Gestione degli errori del certificato SSL Firefox
Per gestire l'errore del certificato SSL in Firefox, dobbiamo utilizzare le capacità desiderate di Selenium Webdriver e seguire i passaggi seguenti.
Passo 1) Per prima cosa dobbiamo creare un nuovo profilo Firefox, ad esempio "il mio profilo". Puoi fare riferimento a Google per imparare "Come creare" un profilo Firefox. È semplice e facile.
Passo 2) Ora accedi a myProfile nello script come di seguito e crea il file FirefoxOggetto profilo.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Passo 3) Ora dobbiamo impostare “setAcceptUntrustedCertificates" e "setAssumeUntrustedCertificateIssuer"proprietà nel Fuoco Fox profilo.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Passo 4) Ora usa il fuocoFox profilo nel FuocoFox oggetto conducente.
WebDriver driver = new FirefoxDriver (ffProfile)
Note:: “setAcceptUntrustedCertificates” e “setAssumeUntrustedCertificateIssuer" sono funzionalità per gestire gli errori di certificato 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) WebDriver driver = new ChromeDriver (handlSSLErr);
Gestione degli errori del certificato SSL in IE
A differenza della gestione dei certificati SSL nel browser Chrome e Firefox, in IE, potresti doverlo gestire utilizzando javascript.
Per gestire il certificato SSL in IE, puoi gestire questa situazione in due modi,
- In questo, farai clic sul collegamento “Continua su questo sito (non raccomandato)". Di seguito vedremo come gestire gli errori SSL in IE.
Osservando l'errore del certificato SSL nel browser IE troverai il collegamento "Continua su questo sito Web (non consigliato)". Questo collegamento ha l'ID "collegamento sovrascrivi". È possibile visualizzare l'ID in modalità HTML utilizzando F12.
Fare clic sul collegamento utilizzando il metodo driver.navigate() con JavaCopione come sotto :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- Il secondo metodo è abbastanza simile al codice di gestione SSL di Chrome
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Il codice sopra riportato aiuterà a gestire l'errore del certificato SSL in IE.
Sintesi
- 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 esistenti 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 nel certificato SSL
- È necessario modificare il nostro script in modo tale che si occupi da solo dell'eccezione/errore SSL Selenium Driver Web.