Cómo manejar el certificado SSL en Selenium WebDriver

Tabla de contenido:

Anonim

¿Qué es el certificado SSL?

SSL (Secure Sockets Layer) es un protocolo de seguridad estándar para establecer una conexión segura entre el servidor y el cliente, que es un navegador.

El certificado SSL (Secure Socket Layer) garantiza la transformación segura de los datos en el servidor y la aplicación del cliente mediante un estándar de cifrado sólido o una firma digital. Hay que instalar un certificado SSL o un certificado de firma de código.

En este tutorial, aprenderá:

  • ¿Qué es el certificado SSL?
  • Beneficios del certificado SSL
  • ¿Cómo crea el certificado SSL una conexión segura?
  • Tipos de certificados SSL
  • Cómo se verifican los certificados SSL
  • Tipos de error de certificado SSL
  • Cómo manejar un error de certificado SSL usando Selenium Webdriver
  • Manejo de errores del certificado SSL en Firefox
  • Manejo de errores del certificado SSL en Chrome
  • Manejo de errores del certificado SSL en IE

Beneficios del certificado SSL

Hay una serie de beneficios de usar un certificado SSL como,

  • Se puede aumentar la confianza de sus usuarios y clientes para mejorar rápidamente el crecimiento de la empresa.
  • Estos certificados ayudan a proteger las transacciones en línea y la información confidencial de los clientes, como datos de tarjetas de crédito / débito, etc.
  • La firma del certificado tiende a obtener un número máximo de descargas y buenas críticas por parte de los usuarios.

Los sitios web con seguridad SSL comienzan con https: // y puede ver un icono de candado o una barra de direcciones verde si la conexión está establecida de forma segura.

Por ejemplo, si desea realizar alguna transacción a través de banca por Internet o desea comprar un teléfono móvil a través de un sitio de comercio electrónico como Flipkart o Amazon.

¿Qué sucede entre el navegador web y el servidor?

  1. Un navegador intenta conectarse con un sitio web protegido con SSL. El navegador solicita al servidor web que se identifique
  2. El servidor envía al navegador una copia de su certificado SSL
  3. El navegador verifica si el certificado SSL es genuino. Si es así, envía un mensaje al servidor.
  4. El servidor envía un acuse de recibo firmado digitalmente para iniciar una sesión cifrada con SSL
  5. Los datos cifrados se comparten entre el servidor y el navegador.

Al hacerlo, debe transmitir información confidencial, como números de tarjetas de crédito o credenciales de inicio de sesión, y eso debe transmitirse de forma segura para que no pueda ser pirateado o interceptado.

Por ejemplo

  1. Escriba https://netbanking.hdfcbank.com/netbanking/ .
  2. Presione enter.
  3. Verá una barra de direcciones verde en el navegador como se muestra a continuación: -

¿Cómo crea el certificado SSL una conexión segura?

  1. El navegador envía una solicitud HTTPS al servidor.
  2. Ahora el servidor debe proporcionar alguna identificación al navegador para demostrar que es de confianza. Esto se puede hacer enviando una copia de su certificado SSL al navegador.
  3. Cada navegador tiene su propia lista de CA de confianza. El navegador comprueba la raíz del certificado con su lista de CA de confianza y que el certificado no ha vencido, no ha sido revocado y que el nombre común es válido para el sitio web al que se está conectando.
  4. Si el navegador confía en el certificado, se crea una sesión cifrada entre el servidor y el navegador.
  5. El servidor y el navegador pueden enviar mensajes cifrados

Tipos de certificados SSL

El navegador y el servidor utilizan un mecanismo de certificado SSL para poder establecer una conexión segura. Esta conexión implica la verificación de tres tipos de certificados.

  • Raíz
  • Intermedio
  • Certificado de servidor

Proceso de obtención del certificado SSL

El proceso de obtención del certificado SSL incluye los siguientes pasos: -

  1. Primero, debe crear una solicitud CSR (crear una solicitud de firma de certificado).
  2. La solicitud de CSR crea un archivo de datos de CSR, que se envía al emisor del certificado SSL conocido como CA (Autoridad de certificación).
  3. La CA utiliza los archivos de datos CSR para crear un certificado SSL para su servidor.
  4. Después de recibir el certificado SSL, debe instalarlo en su servidor.
  5. También es necesario instalar un certificado intermedio que vincule su certificado SSL con el certificado raíz de CA.

La siguiente imagen representa los tres certificados: certificado raíz, intermedio y de servidor.

Cómo se verifican los certificados SSL

SSL funciona a través de una combinación de programas y rutinas de cifrado / descifrado que existen en la computadora del servidor web y el navegador del servidor web.

El certificado SSL básicamente contiene la siguiente información.

  1. Asunto que es la identidad del propietario del sitio web.
  2. Información de validez: una clave pública y una privada.

La clave privada y la pública son dos claves criptográficas (números) relacionadas de forma única. Todo lo que esté encriptado por una clave pública solo puede ser desencriptado por una clave privada.

Cuando no se establece una conexión segura entre el servidor y el cliente debido al certificado, se manifestará el siguiente error del certificado SSL.

Tipos de error de certificado SSL

Suponga que escribe alguna solicitud https en el navegador y recibe un mensaje como "Esta conexión no es de confianza" o "El certificado de seguridad del sitio no es de confianza", según el navegador que esté utilizando. Entonces, tal error está sujeto a un error de certificado SSL.

Ahora, si el navegador no puede establecer una conexión segura con el certificado solicitado, entonces el navegador lanzará la excepción "Conexión no confiable" como se muestra a continuación y le pedirá al usuario que tome la acción apropiada.

Los tipos de error que probablemente verá debido al certificado en diferentes navegadores pueden ser algo así

  1. FireFox : esta conexión no es de confianza
  1. Google Chrome: la seguridad de este sitio no es de confianza
  1. Internet Explorer (IE) : este certificado de seguridad presentado por este sitio web no contaba con la confianza de una autoridad de certificación (CA) de confianza

Cómo manejar un error de certificado SSL usando Selenium Webdriver

Supongamos que hemos escrito algunos scripts de prueba y, mientras lo ejecutábamos, nos encontramos con la situación anterior como "Conexión no confiable", entonces, ¿cómo manejamos la excepción mediante la automatización puramente?

En tal caso, tenemos que ajustar nuestro script de tal manera que se encargue de la excepción SSL por sí mismo.

Los scripts deben modificarse de acuerdo con el tipo de instancia de navegador que estemos usando. Estos cuando las capacidades deseadas entran en escena.

Las capacidades deseadas se utilizan para configurar la instancia del controlador de Selenium Webdriver. A través de las capacidades deseadas, se pueden configurar todas las instancias de controladores como ChromeDriver, FirefoxDriver e Internet Explorer.

A partir de ahora, no tenemos ninguna URL específica para crear el escenario anterior, pero proporciono pasos que podemos agregar en el Selenium Script para manejar la situación anterior "Conexión no confiable".

Manejo de errores del certificado SSL en Firefox

Para manejar el error del certificado SSL en Firefox, debemos usar las capacidades deseadas de Selenium Webdriver y seguir los siguientes pasos.

Paso 1) : Primero necesitamos crear un nuevo perfil de Firefox, diga " myProfile ". Puede consultar a Google para aprender "Cómo crear" un perfil de Firefox. Es sencillo y fácil.

Paso 2) : Ahora acceda a myProfile en el script como se muestra a continuación y cree el objeto FirefoxProfile.

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

Paso 3) : Ahora necesitamos establecer las propiedades " setAcceptUntrustedCertificates " y " setAssumeUntrustedCertificateIssuer " en el perfil de Fire Fox.

ffProfile.setAcceptUntrustedCertificates (verdadero)ffProfile.setAssumeUntrustedCertificateIssuer (falso)

Paso 4) : Ahora use el perfil de FireFox en el objeto del controlador de FireFox.

Controlador WebDriver = nuevo FirefoxDriver (ffProfile) 

Nota : "setAcceptUntrustedCertificates" y "setAssumeUntrustedCertificateIssuer " son capacidades para manejar los errores de certificado en los navegadores web.

Manejo de errores del certificado SSL en Chrome

Para manejar el error SSL en Chrome, necesitamos usar las capacidades deseadas de Selenium Webdriver. El siguiente código ayudará a aceptar todos los certificados SSL en Chrome, y el usuario no recibirá ningún error relacionado con el certificado SSL al usar este código.

Necesitamos crear una instancia de la clase DesiredCapabilities como se muestra a continuación:

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, verdadero)Controlador WebDriver = nuevo ChromeDriver (handlSSLErr);

Manejo de errores del certificado SSL en IE

A diferencia del manejo de certificados SSL en el navegador Chrome y Firefox, en IE, es posible que deba manejarlo usando javascript.

Para manejar el certificado SSL en IE, puede manejar esta situación de dos maneras,

  1. En este, hará clic en el enlace " Continuar a este sitio web (no recomendado)". A continuación, veremos cómo manejar el error SSL en IE.

Observe el error del certificado SSL en el navegador IE y encontrará el enlace "Continuar a este sitio web (no recomendado)". Este enlace tiene ID "enlace de anulación". Puede ver la ID en modo HTML usando F12.

Haga clic en el enlace usando el método driver.navigate () con JavaScript como se muestra a continuación: -

driver.navigate () .to ("javascript: document.getElementById ('overridelink'). click ()");
  1. El segundo método es bastante similar al código de manejo SSL de Chrome
Capacidades DesiredCapabilities = new DesiredCapabilities ();capacidades.setCapabilidad (CapabilityType.ACCEPT_SSL_CERTS, verdadero);System.setProperty ("webdriver.ie.driver", "IEDriverServer.exe");Controlador WebDriver = nuevo InternetExplorerDriver (capacidades);

El código anterior ayudará a manejar el error del certificado SSL en IE.

Resumen:

  • SSL (Secure Sockets Layer) es un protocolo de seguridad estándar para establecer una conexión segura entre el servidor y el cliente.
  • El navegador y el servidor utilizan un mecanismo de certificado SSL para poder establecer una conexión segura.
  • SSL funciona a través de una combinación de programas y rutinas de cifrado / descifrado que existen en la computadora del servidor web y el navegador del servidor web.
  • Cuando no se establece una conexión segura entre el servidor y el cliente debido al certificado, se producirá un error de certificado SSL
  • Necesitamos ajustar nuestro script de tal manera que se encargue de la excepción / error SSL por sí mismo a través del controlador web de Selenium.