Como lidar com o certificado SSL em Selenium

Certificado SSL em Selenium

SSL (Secure Sockets Layer) é um protocolo de segurança padrão para estabelecer uma conexão segura entre o servidor e o cliente que é um navegador.

O certificado SSL (Secure Socket Layer) garante a transformação segura de dados no servidor e no aplicativo cliente usando um forte padrão de criptografia ou assinatura digital. É necessário instalar um certificado SSL ou um certificado de assinatura de código.

Benefícios do Certificado SSL

Existem vários benefícios em usar o certificado SSL, como,

  • Pode-se aumentar a confiança de seus usuários e clientes, a fim de aumentar rapidamente o crescimento do negócio
  • Esses certificados ajudam a proteger transações on-line e informações confidenciais dos clientes, como dados de cartão de crédito/débito, etc.
  • O certificado de assinatura tende a obter um número máximo de downloads e boas críticas dos usuários.

Sites protegidos por SSL começam com https://e você poderá ver um ícone de cadeado ou uma barra de endereço verde se a conexão for estabelecida com segurança.

Por exemplo, se você deseja fazer alguma transação via net banking ou deseja adquirir um Mobile telefone através de um site de comércio eletrônico como Flipkart ou Amazon.

O que acontece entre o navegador da Web e o servidor

  1. Um navegador tenta se conectar a um site protegido por SSL. O navegador solicita que o servidor web se identifique
  2. O servidor envia ao navegador uma cópia de seu certificado SSL
  3. O navegador verifica se o certificado SSL é genuíno. Se sim, ele envia uma mensagem para o servidor
  4. O servidor envia de volta uma confirmação assinada digitalmente para iniciar uma sessão criptografada SSL
  5. Os dados criptografados são compartilhados entre o servidor e o navegador

Ao fazer isso, você precisa transmitir informações confidenciais, como números de cartão de crédito ou credenciais de login, e que devem ser transmitidas de forma segura para que não possam ser hackeadas ou interceptadas.

Por exemplo

  1. Formato https://netbanking.hdfcbank.com/netbanking/ .
  2. Pressione Enter.
  3. Você verá uma barra de endereço verde no navegador conforme abaixo: –

Benefícios do certificado SSL

Como o certificado SSL cria uma conexão segura

Certificado SSL Crie uma conexão segura

  1. Navegador envia solicitação HTTPS para o servidor.
  2. Agora o Servidor deve fornecer alguma identificação ao Navegador para provar que é confiável. Isso pode ser feito enviando uma cópia do seu certificado SSL para o navegador.
  3. Cada navegador possui sua própria lista de CAs confiáveis. O navegador verifica a raiz do certificado em relação à sua lista de CAs confiáveis ​​e se o certificado não está expirado, não foi revogado e se o nome comum é válido para o site ao qual está se conectando.
  4. Se o navegador confiar no certificado, uma sessão criptografada será criada entre o servidor e o navegador.
  5. Servidor e navegador podem enviar mensagens criptografadas

Tipos de certificados SSL

O navegador e o servidor usam o mecanismo de certificado SSL para poder estabelecer uma conexão segura. Esta conexão envolve a verificação de três tipos de certificados.

  • Raiz
  • Nível intermediário
  • Certificado de servidor

Processo de obtenção do Certificado SSL

O processo de obtenção do certificado SSL inclui as etapas abaixo: –

  1. Primeiro, você deve criar uma solicitação CSR (criar uma solicitação de assinatura de certificado).
  2. A solicitação CSR cria um arquivo de dados CSR, que é enviado ao emissor do certificado SSL conhecido como CA (Autoridade de Certificação).
  3. A CA usa os arquivos de dados CSR para criar o certificado SSL para o seu servidor.
  4. Após receber o certificado SSL, você deverá instalá-lo em seu servidor.
  5. Também é necessário instalar um certificado intermediário que vincule o seu certificado SSL ao certificado raiz da CA.

A imagem abaixo representa todos os três certificados- Certificado Raiz, Intermediário e Servidor.

Processo de obtenção do Certificado SSL

Como os certificados SSL são verificados

SSL funciona por meio de uma combinação de programas e rotina de criptografia/descriptografia que existem no computador do servidor web e no navegador do servidor web.

O certificado SSL contém basicamente as informações abaixo.

  1. Assunto que é a identidade do proprietário do site.
  2. Informações de validade - uma chave pública e uma chave privada.

As chaves privada e pública são duas chaves criptográficas (números) exclusivamente relacionadas. Tudo o que é criptografado por uma chave pública só pode ser descriptografado por uma chave privada.

Certificados SSL são verificados

Quando uma conexão segura não é estabelecida entre o servidor e o cliente devido ao certificado, o seguinte erro de certificado SSL será manifestado.

Tipos de erro de certificado SSL

Suponha que você digite alguma solicitação https no navegador e receba uma mensagem como “Esta conexão não é confiável” ou “O certificado de segurança do site não é confiável”, dependendo do navegador que você está usando. Então, esse erro está sujeito a erro de certificado SSL.

Agora, se o navegador não conseguir estabelecer uma conexão segura com o certificado solicitado, o navegador lançará a exceção “Conexão não confiável” conforme abaixo e solicitará ao usuário que tome as medidas apropriadas.

Os tipos de erros que você provavelmente verá devido ao certificado em diferentes navegadores podem ser mais ou menos assim

  1. FogoFox - Esta conexão não é confiável
  1. Google Chrome -A segurança deste site não é confiável
  1. Internet Explorer (ou seja) – Este certificado de segurança apresentado por este site não era confiável por uma autoridade de certificação (CA) confiável

Tipos de erro de certificado SSL

Como lidar com erros de certificado SSL usando Selenium Driver da Web

Suponha que escrevemos alguns scripts de teste e, durante a execução do script, pegamos a situação como “Conexão não confiável” acima, então como lidamos com a exceção puramente por meio de automação.

Nesse caso, temos que ajustar nosso script de forma que ele cuide sozinho da Exceção SSL.

Os scripts precisam ser modificados de acordo com o tipo de instância do navegador que estamos usando. Esses recursos quando desejados aparecem em imagem.

Desired Capabilities é usado para configurar a instância do driver de Selenium Driver da Web. Através dos recursos desejados, é possível configurar todas as instâncias do driver, como ChromeDriver, FirefoxDriver e Internet Explorer.

No momento não temos nenhum URL específico para criar o cenário acima, mas estou fornecendo etapas que podemos adicionar no Selenium Script para lidar com a situação acima “Conexão não confiável”.

Tratamento de erros de certificado SSL em Firefox

Para lidar com erros de certificado SSL em Firefox, precisamos usar os recursos desejados de Selenium Webdriver e siga os seguintes passos.

Passo 1) Primeiro precisamos criar um novo perfil do Firefox, digamos “meu perfil“. Você pode consultar o Google para aprender “Como criar” um perfil do Firefox. É simples e fácil.

Passo 2) Agora acesse myProfile no script abaixo e crie o FirefoxObjeto de perfil.

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

Passo 3) Agora precisamos definir “setAcceptUntrustedCertificates"E"setAssumeUntrustedCertificateIssuer”propriedades no Fogo Fox perfil.

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

Passo 4) Agora use o fogoFox perfil no FogoFox objeto motorista.

WebDriver driver = new FirefoxDriver (ffProfile)

Note: “setAcceptUntrustedCertificates” e “setAssumeUntrustedCertificateIssuer" são recursos para lidar com erros de certificado em navegadores da web.

Tratamento de erros de certificado SSL no Chrome

Para lidar com erros de SSL no Chrome, precisamos usar os recursos desejados de Selenium Driver da Web. O código abaixo ajudará a aceitar todos os certificados SSL no Chrome, e o usuário não receberá nenhum erro relacionado ao certificado SSL usando este código.

Precisamos criar uma instância da classe DesiredCapabilities conforme abaixo: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()       
handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)
WebDriver driver = new ChromeDriver (handlSSLErr);

Tratamento de erros de certificado SSL no IE

Ao contrário do tratamento de certificados SSL no navegador Chrome e Firefox, no IE, pode ser necessário lidar com isso usando javascript.

Para lidar com o certificado SSL no IE, você pode lidar com essa situação de duas maneiras,

  1. Neste, você clicará no link “Continue neste site (não recomendado)”. A seguir veremos como lidar com erros de SSL no IE.

Observe o erro do certificado SSL no navegador IE, você encontrará o link “Continuar neste site (não recomendado)”. Este link possui o ID “link de substituição”. Você pode visualizar o ID no modo HTML usando F12.

Tratamento de erros de certificado SSL no IE

Clique no link usando o método driver.navigate() com JavaScript como abaixo :-

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
  1. O segundo método é bastante semelhante ao código de manipulação SSL do Chrome
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.ie.driver","IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(capabilities);

O código acima ajudará a lidar com erros de certificado SSL no IE.

Resumo

  • SSL (Secure Sockets Layer) é um protocolo de segurança padrão para estabelecer conexão segura entre o servidor e o cliente
  • O navegador e o servidor usam o mecanismo de certificado SSL para poder estabelecer uma conexão segura.
  • SSL funciona por meio de uma combinação de programas e rotina de criptografia/descriptografia que existem no computador do servidor web e no navegador do servidor web.
  • Quando a conexão segura não for estabelecida entre o servidor e o cliente devido ao certificado, ocorrerá um erro de certificado SSL
  • Precisamos ajustar nosso script de forma que ele cuide da exceção/erro SSL sozinho através Selenium Motorista web.