Cómo manejar el certificado SSL en Selenium
⚡ Resumen inteligente
Los errores del certificado SSL detienen un Selenium Es necesario comprobar en qué momento un navegador rechaza un certificado no fiable o caducado, por lo que cada script de WebDriver necesita una funcionalidad específica del navegador que acepte el certificado y permita que la automatización continúe.
Certificado SSL en Selenium
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.
Un certificado SSL protege los datos que se transmiten entre el servidor y la aplicación cliente mediante un cifrado robusto y una firma digital. El propietario del sitio web instala 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?
- Un navegador intenta conectarse con un sitio web protegido con SSL. El navegador solicita al servidor web que se identifique
- El servidor envía al navegador una copia de su certificado SSL
- El navegador verifica si el certificado SSL es genuino. Si es así envía un mensaje al servidor.
- El servidor devuelve un acuse de recibo firmado digitalmente para iniciar una sesión cifrada SSL
- Los datos cifrados se comparten entre el servidor y el navegador.
Los números de tarjeta y las credenciales de inicio de sesión se transmiten durante esa sesión, por lo que el intercambio debe permanecer cifrado de extremo a extremo y no puede ser interceptado.
Por ejemplo, el candado y la barra de direcciones que aparecen a continuación confirman que el certificado fue aceptado.
- Tipo https://netbanking.hdfcbank.com/netbanking/ .
- Pulse Enter.
- 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?
El diagrama a continuación tracEl apretón de manos y los pasos numerados que siguen explican cada intercambio.
- Navegador envía una solicitud HTTPS al servidor.
- 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.
- 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.
- Si el navegador confía en el certificado, se crea una sesión cifrada entre el servidor y el navegador.
- 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: –
- Primero, debe crear una solicitud CSR (crear una solicitud de firma de certificado).
- La solicitud CSR crea un archivo de datos CSR, que se envía al emisor del certificado SSL conocido como CA (Autoridad certificadora).
- La CA utiliza los archivos de datos CSR para crear un certificado SSL para su servidor.
- Después de recibir el certificado SSL, debe instalarlo en su servidor.
- 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 en el navegador del servidor web.
El certificado SSL básicamente contiene la siguiente información.
- Asunto que es la identidad del titular del sitio web.
- Información de validez: una clave pública y una privada.
La clave privada y la clave pública son dos claves criptográficas (números) relacionadas de forma única. Todo lo que se cifra con una clave pública solo puede descifrarse con una clave privada. Un navegador muestra estos campos al inspeccionar el certificado, como se muestra a continuación.
Cuando no se establece una conexión segura entre el servidor y el cliente debido al certificado, se manifestará el siguiente error de certificado SSL.
Tipos de error de certificado SSL
Supongamos que introduces una solicitud HTTPS y el navegador responde con el mensaje "Esta conexión no es segura" o "El certificado de seguridad del sitio no es de confianza". El navegador no pudo establecer una conexión segura con el certificado presentado, por lo que se detiene y solicita al usuario que realice las acciones pertinentes.
Los tipos de errores que probablemente verá debido al certificado en diferentes navegadores pueden ser algo así como esto
- IncendióFox – Esta conexión no es de confianza
- Google Chrome – No se confía en la seguridad de este sitio.
- Internet Explorer (IE) – Este certificado de seguridad presentado por este sitio web no fue confiado por una autoridad certificadora (CA) confiable
La captura de pantalla que aparece a continuación muestra el mensaje intersticial que produce un certificado no confiable.
Cómo manejar el error del certificado SSL usando Selenium controlador web
Supongamos que script de prueba llega a la página "Conexión no segura" mencionada anteriormente. El script debe ajustarse para que se encargue de la excepción SSL por sí mismo, simplemente a través de la automatización.
El cambio depende de la instancia del navegador en uso, y aquí es donde entran en juego las capacidades deseadas. Las capacidades deseadas configuran la instancia del controlador de Selenium Webdriver, incluyendo ChromeDriver, FirefoxControlador e Internet Explorer.
Los pasos que se indican a continuación se pueden añadir a un Selenium Script para solucionar el problema de "Conexión no segura" en cada navegador.
⚠️ Selenium Nota 4: La clase DesiredCapabilities fue eliminada en Selenium 4. Las clases de opciones del navegador ahora llevan la misma configuración a través de una única capacidad W3C, aceptar certificados inseguros.
| Navegador | Selenium clase 4 | Llame hoy al |
|---|---|---|
| Chrome | Opciones de Chrome | setAcceptInsecureCerts(true) |
| Firefox | FirefoxOpciones | setAcceptInsecureCerts(true) |
| Edge | Opciones de borde | setAcceptInsecureCerts(true) |
| Safari | JavascriptEjecutor | script de derivación temporal |
ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
Manejo de errores de certificado SSL en Firefox
Para manejar el error del certificado SSL en Firefox, necesitamos utilizar las capacidades deseadas de Selenium Webdriver y siga los siguientes pasos.
Paso 1) Primero necesitamos crear uno nuevo Firefox perfiles decir "mi perfil".
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 las propiedades “setAcceptUntrustedCertificates” y “setAssumeUntrustedCertificateIssuer” en Fire. Fox perfil.
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
Paso 4) Ahora usa el fuegoFox Perfil en el fuegoFox objeto conductor.
WebDriver driver = new FirefoxDriver (ffProfile)
Nota: "setAceptar certificados no confiables" y "setAssumeUntrustedCertificateIssuer“son capacidades para manejar los errores de certificado en los navegadores web.
⚠️ Nota de versión: El código basado en perfiles mencionado anteriormente apunta a Selenium 2 y Selenium 3. En Selenium 4. Se adjunta un perfil a través de FirefoxOpciones y Firefox Acepta certificados no seguros por defecto.
Manejo de errores de certificado SSL en Chrome
Para gestionar los errores SSL en Chrome, el objeto DesiredCapabilities que se muestra a continuación acepta todos los certificados SSL, por lo que el usuario no ve ninguna advertencia de certificado durante la ejecución.
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);
⚠️ Nota de versión: CapabilityType.ACCEPT_SSL_CERTS pertenece al antiguo protocolo JSON Wire. Reemplácelo con el fragmento de ChromeOptions que se mostró anteriormente al ejecutar Selenium 4.
Manejo de errores de certificado SSL en IE
A diferencia del manejo de certificados SSL en el navegador Chrome y FirefoxEn IE, es posible que tengas que manejarlo usando javascript.
Para gestionar un certificado SSL en Internet Explorer, puede abordar esta situación de dos maneras.
Método 1) Haz clic en el enlace “Continuar a este sitio web (no recomendado)” en la ventana emergente. Ese enlace tiene el ID “overridelink”, que puedes confirmar en el panel HTML que se abre con F12, como se muestra en la captura de pantalla a continuación.
Haga clic en el enlace usando el método driver.navigate() con JavaGuion como se muestra a continuación:
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
Método 2) El segundo método es bastante similar al código de manejo de 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.
⚠️ Nota de versión: Internet Explorer 11 fue retirado en junio de 2022. Ejecute el mismo escenario contra Microsoft Edge con EdgeOptions, o utilice Edge en modo IE cuando una aplicación heredada aún lo requiera.





