Comment gérer le certificat SSL dans Selenium

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.

Le certificat SSL (Secure Socket Layer) garantit la transformation sécurisée des données sur le serveur et l'application client à l'aide d'une norme de cryptage forte ou d'une signature numérique. Il faut installer un certificat SSL ou 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

  1. Un navigateur tente de se connecter à un site Web sécurisé avec SSL. Le navigateur demande au serveur Web de s'identifier
  2. Le serveur envoie au navigateur une copie de son certificat SSL
  3. Le navigateur vérifie si le certificat SSL est authentique. Si c'est le cas, il envoie un message au serveur
  4. Le serveur renvoie un accusé de réception signé numériquement pour démarrer une session cryptée SSL
  5. Les données cryptées sont partagées entre le serveur et le navigateur

Ce faisant, vous devez transmettre des informations sensibles telles que des numéros de carte de crédit ou des identifiants de connexion, et celles-ci doivent être transmises de manière sécurisée afin qu'elles ne puissent pas être piratées ou interceptées.

Par exemple

  1. Type https://netbanking.hdfcbank.com/netbanking/ .
  2. Appuyez sur Entrée.
  3. Vous verrez une barre d'adresse verte dans le navigateur comme ci-dessous : -

Avantages du certificat SSL

Comment le certificat SSL crée-t-il une connexion sécurisée

Certificat SSL Créer une connexion sécurisée

  1. Navigateur envoie une requête HTTPS au serveur.
  2. 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.
  3. 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.
  4. Si le navigateur fait confiance au certificat, une session cryptée est créée entre le serveur et le navigateur.
  5. 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 : -

  1. Tout d’abord, vous devez créer une demande CSR (créer une demande de signature de certificat).
  2. La demande CSR crée un fichier de données CSR, qui est envoyé à l'émetteur du certificat SSL appelé CA (Certificate Authority).
  3. L'autorité de certification utilise les fichiers de données CSR pour créer un certificat SSL pour votre serveur.
  4. Après avoir reçu le certificat SSL, vous devez l'installer sur votre serveur.
  5. 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.

Processus d'obtention du certificat SSL

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.

  1. Sujet qui est l'identité du propriétaire du site.
  2. Informations de validité - une clé publique et une clé privée.

Les clés privée et publique sont deux clés cryptographiques (numéros) liées de manière unique. Tout ce qui est chiffré par une clé publique ne peut être déchiffré que par une clé privée.

Les certificats SSL sont vérifiés

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 tapiez une requête https dans le navigateur et que vous receviez un message tel que « Cette connexion n'est pas fiable » ou « Le certificat de sécurité du site n'est pas fiable » selon le navigateur que vous utilisez. Une telle erreur est alors soumise à une erreur de certificat SSL.

Désormais, si le navigateur ne parvient pas à établir une connexion sécurisée avec le certificat demandé, le navigateur lancera l'exception « Connexion non approuvée » comme ci-dessous et demandera à l'utilisateur de prendre les mesures appropriées.

Les types d'erreurs que vous êtes susceptible de voir en raison du certificat dans différents navigateurs peuvent ressembler à ceci

  1. IncendieFox – Cette connexion n’est pas fiable
  1. Google Chrome -La sécurité de ce site n'est pas fiable
  1. 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

Types d'erreur de certificat SSL

Comment gérer l'erreur de certificat SSL à l'aide Selenium Pilote Web

Supposons que nous ayons écrit des scripts de test et que lors de l'exécution du script, nous nous soyons retrouvés dans la situation de « Connexion non fiable » ci-dessus, alors comment gérer l'exception uniquement via l'automatisation.

Dans ce cas, nous devons ajuster notre script de manière à ce qu'il s'occupe lui-même de l'exception SSL.

Les scripts doivent être modifiés en fonction du type d'instance de navigateur que nous utilisons. Lorsque les capacités souhaitées apparaissent.

Les capacités souhaitées sont utilisées pour configurer l'instance de pilote de Selenium Pilote Web. Grâce aux capacités souhaitées, on peut configurer toutes les instances de pilote comme ChromeDriver, FirefoxPilote et Internet Explorer.

Pour l'instant, nous n'avons pas d'URL spécifique pour créer le scénario ci-dessus, mais je propose des étapes que nous pouvons ajouter dans le Selenium Script pour gérer la situation ci-dessus « Connexion non approuvée ».

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 profil Firefox, par exemple «mon profil« . Vous pouvez vous référer à Google pour savoir « Comment créer » un profil Firefox. C'est simple et facile.

É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) Maintenant, nous devons définir "setAcceptUntrustedCertificates" et "setAssumeUntrustedCertificateIssuer" Propriétés dans l'incendie 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)

Note: « setAcceptUntrustedCertificates » et « setAssumeUntrustedCertificateIssuer" sont des capacités permettant de gérer les erreurs de certificat dans les navigateurs Web.

Gestion des erreurs de certificat SSL dans Chrome

Pour gérer les erreurs SSL dans Chrome, nous devons utiliser les fonctionnalités souhaitées de Selenium Pilote Web. Le code ci-dessous aidera à accepter tous les certificats SSL dans Chrome, et l'utilisateur ne recevra aucune erreur liée au certificat SSL en utilisant ce code.

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);

Gestion des erreurs de certificat SSL dans IE

Contrairement à la gestion des certificats SSL dans le navigateur Chrome et Firefox, dans IE, vous devrez peut-être le gérer en utilisant javascript.

Pour gérer le certificat SSL dans IE, vous pouvez gérer cette situation de deux manières :

  1. En cela, vous cliquerez sur le lien «Poursuivre avec ce site Web (non recommandé)". Dans ce qui suit, nous verrons comment gérer les erreurs SSL dans IE.

Observez l'erreur de certificat SSL dans le navigateur IE, vous trouverez le lien « Continuer sur ce site Web (non recommandé) ». Ce lien a l'ID « lien de remplacement ». Vous pouvez afficher l'ID en mode HTML en utilisant F12.

Gestion des erreurs de certificat SSL dans IE

Cliquez sur le lien en utilisant la méthode driver.navigate() avec Javascénario comme ci-dessous :-

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
  1. La deuxième méthode est assez similaire au code de gestion SSL 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.

Résumé

  • 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.
  • Le navigateur et le serveur utilisent le mécanisme de certificat SSL pour pouvoir établir une connexion sécurisée.
  • 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.
  • Lorsqu'une connexion sécurisée n'est pas établie entre le serveur et le client en raison du certificat, une erreur de certificat SSL se produit
  • Nous devons ajuster notre script de manière à ce qu'il s'occupe lui-même des exceptions/erreurs SSL via Selenium Pilote Web.