Cómo manejar el certificado SSL en Selenium

Certificado SSL en Selenio

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 datos en el servidor y la aplicación cliente mediante un fuerte estándar de cifrado o firma digital. Hay que instalar un certificado SSL o un certificado de firma de código.

Beneficios del certificado SSL

Hay varios beneficios de usar un certificado SSL como,

  • Se puede aumentar la confianza de sus usuarios y clientes para mejorar rápidamente el crecimiento del negocio.
  • 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.
  • El certificado de firma tiende a obtener un número máximo de descargas y buenas críticas por parte de los usuarios.

Los sitios web protegidos por SSL comienzan con https://y podrá 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 neta o desea comprar un Móvil teléfono 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 devuelve un acuse de recibo firmado digitalmente para iniciar una sesión cifrada 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 debe transmitirse de forma segura para que no pueda ser pirateada ni interceptada.

Por ejemplo:

  1. Tipo de Propiedad https://netbanking.hdfcbank.com/netbanking/ .
  2. Pulse Enter.
  3. Verá una barra de direcciones verde en el navegador como se muestra a continuación: –

Beneficios del certificado SSL

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

Certificado SSL Cree una conexión segura

  1. Navegador envía una solicitud HTTPS al servidor.
  2. Ahora el servidor debe proporcionar alguna identificación al navegador para demostrar que es confiable. 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 verifica la raíz del certificado con su lista de CA confiables y que el certificado no esté vencido, no esté revocado y que el nombre común sea 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 el mecanismo de certificado SSL para poder establecer una conexión segura. Esta conexión implica la verificación de tres tipos de certificados.

  • root
  • 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 CSR crea un archivo de datos CSR, que se envía al emisor del certificado SSL conocido como CA (Autoridad certificadora).
  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.

Proceso de obtención del certificado SSL

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 en el navegador del servidor web.

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

  1. Asunto que es la identidad del titular 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é cifrado con una clave pública sólo podrá descifrarse con una clave privada.

Los certificados SSL están verificados.

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

Tipos de error de certificado SSL

Supongamos 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 dicho error está sujeto a un error del certificado SSL.

Ahora, si el navegador no puede establecer una conexión segura con el certificado solicitado, generará la excepción "Conexión no confiable" como se muestra a continuación y pedirá al usuario que tome las medidas adecuadas.

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

  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 fue confiado por una autoridad certificadora (CA) confiable

Tipos de error de certificado SSL

Cómo manejar el error del certificado SSL usando Selenium Webdriver

Supongamos que hemos escrito algunos scripts de prueba y, mientras los ejecutamos, nos encontramos en la situación anterior como "Conexión no confiable", entonces, ¿cómo manejamos la excepción únicamente a través de la automatización?

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

Los scripts deben modificarse según el tipo de instancia de navegador que estemos utilizando. Estos son los momentos en que las capacidades deseadas aparecen en la imagen.

Desired Capabilities se utiliza 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, FirefoxControlador e Internet Explorer.

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

Manejo de errores de certificado SSL en Firefox

Para manejar el error del certificado SSL en Firefox, necesitamos usar las capacidades deseadas de Selenium Webdriver y seguir lo siguientewing pasos.

Paso 1) Primero necesitamos crear un nuevo firefox perfil dice "mi perfil“. Puede consultar Google para aprender "Cómo crear". firefox perfil. Es sencillo y fácil.

Paso 2) Ahora acceda a myProfile en el script como se muestra a continuación y cree el FirefoxObjeto de perfil.

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

Paso 3) Ahora necesitamos configurar "setAceptar certificados no confiables y setAssumeUntrustedCertificateIssuer” propiedades en el Fuego Fox perfil.

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

Paso 4) Ahora usa el FireFox perfil en el FireFox objeto conductor.

WebDriver driver = new FirefoxDriver (ffProfile)

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

Manejo de errores de certificado SSL en Chrome

Para manejar el error de SSL en Chrome, necesitamos utilizar 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 utilizar 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, true)
WebDriver driver = new ChromeDriver (handlSSLErr);

Manejo de errores de certificado SSL en IE

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

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

  1. En esto, hará clic en el enlace "Vaya a este sitio web (no recomendado)". en el siguientewing 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 un ID "enlace de anulación". Puede ver el ID en modo HTML usando F12.

Manejo de errores de certificado SSL en IE

Haga clic en el enlace usando el método driver.navigate() con JavaScript como 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.
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.ie.driver","IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(capabilities);

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 el 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 en 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
  • Es necesario ajustar nuestro script de tal manera que se encargue de la excepción/error de SSL por sí solo a través del controlador web Selenium.