Comment gérer le certificat SSL dans Selenium
⚡ Résumé intelligent
Les erreurs de certificat SSL empêchent un Selenium Il faut tester dès qu'un navigateur refuse un certificat non approuvé ou expiré ; chaque script WebDriver a donc besoin d'une fonctionnalité spécifique au navigateur qui accepte le certificat et permet à l'automatisation de se poursuivre.
Certificat SSL dans Selenium
SSL (Secure Sockets Layer) est un protocole de sécurité standard permettant d'établir une connexion sécurisée entre le serveur et le client qui est un navigateur.
Un certificat SSL protège les données transitant entre le serveur et l'application cliente grâce à un chiffrement robuste et une signature numérique. Le propriétaire du site installe soit un certificat SSL, soit un certificat de signature de code.
Avantages du certificat SSL
L'utilisation d'un certificat SSL présente de nombreux avantages, tels que :
- On peut accroître la confiance de ses utilisateurs et de ses clients afin d'améliorer rapidement la croissance de l'entreprise.
- Ces certificats aident à sécuriser les transactions en ligne et les informations sensibles des clients telles que les données de carte de crédit/débit, etc.
- Le certificat de signature a tendance à obtenir un nombre maximum de téléchargements et de bonnes critiques de la part des utilisateurs.
Les sites Web sécurisés par SSL commencent par https:// et vous pouvez voir une icône de verrou ou une barre d'adresse verte si la connexion est établie en toute sécurité.
Par exemple, si vous souhaitez effectuer une transaction via Net Banking ou acheter un Mobile téléphone via un site de commerce électronique tel que Flipkart ou Amazon.
Que se passe-t-il entre le navigateur Web et le serveur
- Un navigateur tente de se connecter à un site Web sécurisé avec SSL. Le navigateur demande au serveur Web de s'identifier
- Le serveur envoie au navigateur une copie de son certificat SSL
- Le navigateur vérifie si le certificat SSL est authentique. Si c'est le cas, il envoie un message au serveur
- Le serveur renvoie un accusé de réception signé numériquement pour démarrer une session cryptée SSL
- Les données cryptées sont partagées entre le serveur et le navigateur
Les numéros de carte et les identifiants de connexion transitent au cours de cette session ; l’échange doit donc rester chiffré de bout en bout et ne peut être intercepté.
Par exemple, le cadenas et la barre d'adresse ci-dessous confirment que le certificat a été accepté.
- Type https://netbanking.hdfcbank.com/netbanking/ .
- Appuyez sur Entrée.
- Vous verrez une barre d'adresse verte dans le navigateur comme ci-dessous : -
Comment le certificat SSL crée-t-il une connexion sécurisée
Le diagramme ci-dessous trac« la poignée de main », et les étapes numérotées qui suivent expliquent chaque échange.
- Navigateur envoie une requête HTTPS au serveur.
- Le serveur doit désormais fournir une certaine identification au navigateur pour prouver qu'il est fiable. Cela peut être fait en envoyant une copie de son certificat SSL au navigateur.
- Chaque navigateur possède sa propre liste d'autorités de certification de confiance. Le navigateur vérifie la racine du certificat par rapport à sa liste d'autorités de certification de confiance et s'assure que le certificat n'est pas expiré, n'est pas révoqué et que le nom commun est valide pour le site Web auquel il se connecte.
- Si le navigateur fait confiance au certificat, une session cryptée est créée entre le serveur et le navigateur.
- Le serveur et le navigateur peuvent envoyer des messages cryptés
Types de certificats SSL
Le navigateur et le serveur utilisent le mécanisme de certificat SSL pour pouvoir établir une connexion sécurisée. Cette connexion implique la vérification de trois types de certificats.
- Traitement
- Intermédiaire
- Certificat de serveur
Processus d'obtention du certificat SSL
Le processus d'obtention du certificat SSL comprend les étapes ci-dessous : -
- Tout d’abord, vous devez créer une demande CSR (créer une demande de signature de certificat).
- La demande CSR crée un fichier de données CSR, qui est envoyé à l'émetteur du certificat SSL appelé CA (Certificate Authority).
- L'autorité de certification utilise les fichiers de données CSR pour créer un certificat SSL pour votre serveur.
- Après avoir reçu le certificat SSL, vous devez l'installer sur votre serveur.
- Un certificat intermédiaire doit également être installé pour lier votre certificat SSL au certificat racine de l'autorité de certification.
L'image ci-dessous représente les trois certificats. Certificat racine, intermédiaire et serveur.
Comment les certificats SSL sont vérifiés
SSL fonctionne grâce à une combinaison de programmes et de routines de cryptage/déchiffrement qui existent sur l'ordinateur du serveur Web et le navigateur du serveur Web.
Le certificat SSL contient essentiellement les informations ci-dessous.
- Sujet qui est l'identité du propriétaire du site.
- Informations de validité - une clé publique et une clé privée.
La clé privée et la clé publique sont deux clés cryptographiques (nombres) liées de manière unique. Tout ce qui est chiffré avec une clé publique ne peut être déchiffré qu'avec une clé privée. Un navigateur affiche ces champs lors de la consultation du certificat, comme ci-dessous.
Lorsqu'une connexion sécurisée n'est pas établie entre le serveur et le client en raison du certificat, l'erreur de certificat SSL suivante se manifestera.
Types d'erreur de certificat SSL
Supposons que vous saisissiez une requête HTTPS et que le navigateur réponde par « Cette connexion n'est pas sécurisée » ou « Le certificat de sécurité du site n'est pas approuvé ». Le navigateur n'a pas pu établir de connexion sécurisée avec le certificat présenté ; il s'interrompt donc et invite l'utilisateur à prendre les mesures nécessaires.
Les types d'erreurs que vous êtes susceptible de voir en raison du certificat dans différents navigateurs peuvent ressembler à ceci
- IncendieFox – Cette connexion n’est pas fiable
- Google Chrome – La sécurité de ce site n'est pas fiable.
- Internet Explorer (IE) – Ce certificat de sécurité présenté par ce site Web n'a pas été approuvé par une autorité de certification (CA) de confiance
La capture d'écran ci-dessous montre l'espace interstitiel généré par un certificat non approuvé.
Comment gérer l'erreur de certificat SSL à l'aide Selenium Pilote Web
Supposons que le script de test L'utilisateur accède à la page « Connexion non sécurisée » ci-dessus. Le script doit être modifié afin qu'il gère lui-même l'exception SSL, uniquement par le biais de l'automatisation.
La modification dépend de l'instance du navigateur utilisée, et c'est là qu'interviennent les capacités souhaitées. Les capacités souhaitées configurent l'instance du pilote de Selenium Webdriver, y compris ChromeDriver, FirefoxPilote et Internet Explorer.
Les étapes ci-dessous peuvent être ajoutées à un Selenium Script permettant de résoudre le problème de « connexion non sécurisée » pour chaque navigateur.
⚠️ Selenium Note de 4 : La classe DesiredCapabilities a été supprimée dans Selenium 4. Les classes Options du navigateur véhiculent désormais le même paramètre grâce à une fonctionnalité unique du W3C. accepter les certificats non sécurisés.
| Navigateur | Selenium classe 4 | Appeler |
|---|---|---|
| Chrome | Options de Chrome | définirAccepterLesCertificatsNonSécurisés(true) |
| Firefox | FirefoxOptions | définirAccepterLesCertificatsNonSécurisés(true) |
| Options Edge | définirAccepterLesCertificatsNonSécurisés(true) | |
| Safari | JavascriptExécuteur | script de contournement temporaire |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Gestion des erreurs de certificat SSL dans Firefox
Pour gérer l'erreur de certificat SSL dans Firefox, nous devons utiliser les capacités souhaitées de Selenium Webdriver et suivez les étapes suivantes.
Étape 1) Nous devons d'abord créer un nouveau Firefox profil dire "mon profil" .
Étape 2) Accédez maintenant à myProfile dans le script comme ci-dessous et créez le FirefoxObjet de profil.
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
Étape 3) Nous devons maintenant définir les propriétés « setAcceptUntrustedCertificates » et « setAssumeUntrustedCertificateIssuer » dans Fire Fox profil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Étape 4) Utilisez maintenant le feuFox profil dans le feuFox objet pilote.
WebDriver driver = new FirefoxDriver (ffProfile)
À noter: "setAcceptUntrustedCertificates" et "setAssumeUntrustedCertificateIssuer« Ce sont des fonctionnalités permettant de gérer les erreurs de certificat dans les navigateurs Web. »
⚠️ Note de version : le code basé sur le profil ci-dessus cible Selenium 2 et Selenium 3. Sur Selenium 4 Un profil est associé via FirefoxOptions, et Firefox Accepte par défaut les certificats non sécurisés.
Gestion des erreurs de certificat SSL dans Chrome
Pour gérer les erreurs SSL dans Chrome, l'objet DesiredCapabilities ci-dessous accepte tous les certificats SSL, de sorte que l'utilisateur ne voit aucun avertissement de certificat pendant l'exécution.
Nous devons créer une instance de la classe DesiredCapabilities comme ci-dessous : -
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
⚠️ Note de version : CapabilityType.ACCEPT_SSL_CERTS appartient à l'ancien protocole JSON Wire. Remplacez-le par l'extrait de code ChromeOptions présenté précédemment lors de l'exécution. Selenium 4.
Gestion des erreurs de certificat SSL dans IE
Contrairement à la gestion des certificats SSL dans le navigateur Chrome et FirefoxDans Internet Explorer, vous devrez peut-être gérer cela en utilisant javascript.
Pour gérer les certificats SSL dans IE, vous pouvez procéder de deux manières.
Méthode 1) Cliquez sur le lien « Continuer vers ce site Web (non recommandé) » dans la fenêtre intermédiaire. Ce lien possède l’identifiant « overridelink », que vous pouvez vérifier dans le volet HTML ouvert avec F12, comme le montre la capture d’écran ci-dessous.
Cliquez sur le lien en utilisant la méthode driver.navigate() avec JavaScript comme ci-dessous :
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Méthode 2) La seconde méthode est assez similaire au code de gestion SSL de Chrome.
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
Le code ci-dessus aidera à gérer l'erreur de certificat SSL dans IE.
⚠️ Note de version : Internet Explorer 11 a été retiré du service en juin 2022. Exécutez le même scénario contre Microsoft Edge avec EdgeOptions, ou activez Edge en mode IE lorsqu'une application ancienne le requiert encore.





