Permitir que dispositivos Android 4 se conectem ao Apache HTTPS

1

Renovei recentemente o certificado de site HTTPS no servidor que mantenho por configurações eficientes e, durante a instalação, do apache ssl, especificamente protocolos e cifras suportados (por exemplo, finalmente removi o SSL3, etc.)

Infelizmente, em uma hora eu recebi ligações do cliente reclamando de um problema. O cliente tem uma base de campo de vendedores (cerca de 50 deles em todo os EUA e Canadá) que usam tablets Android da empresa com uma entrada de pedidos personalizada e aplicativo de rastreamento de clientes. Esse aplicativo parou de funcionar - e meu cliente agora não pode receber pedidos. Isso é bastante crítico, já que eles estão com mais de US $ 100 mil em cumprimento de pedidos apenas um dia depois.

A primeira coisa que acompanhei é que o novo certificado de CA raiz não é confiável por padrão no Android 4 (DigiCert Global Root G2). Eu instalei esse certificado em um dispositivo de amostra que recebi - e agora, pelo menos, o Chrome pode se conectar ao site. No entanto, o aplicativo ainda não consegue se conectar ao servidor. Ele lança o erro "Conexão fechada pelo par" toda vez que tenta se comunicar com o servidor.

Meu palpite é que o problema é com o conjunto de cifras com suporte - suponho que o código android nativo não suporta nenhuma das cifras instaladas no servidor. Portanto, eu tenho duas perguntas até agora:

  1. Quais cifras eu preciso ativar no servidor para permitir que o aplicativo nativo do Android 4 se conecte? Pelo que eu sei, o aplicativo usa java.net.HttpURLConnection para se conectar para remover o host.

  2. O que mais preciso investigar / ativar para tentar que isso funcione?

Por favor, note que a atualização para uma versão mais recente do Android não é uma opção, pois o custo é muito proibitivo para o meu cliente. Eu tenho hoje e amanhã (sábado e domingo) para resolver esse problema - ou o negócio de todo o cliente está sob risco.

UPDATE: aqui estão as cifras / protocolos atualmente ativados:

SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
    
por Aleks G 17.02.2018 / 20:07

1 resposta

1

Pré-aviso: tenho um dispositivo de amostra com o aplicativo em questão em execução.

Ok, depois de horas de luta, em um desespero, comecei a mudar as configurações do aplicativo para apontá-lo para vários outros servidores que eu tenho acesso - e finalmente consegui um, onde a conexão funcionou - então eu copiou as configurações de protocolo e criptografia daquele servidor para o item em questão, alterou as configurações no aplicativo para apontar para o servidor original - e funcionou.

Para referência, veja as configurações:

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!DHE-RSA-DES-CBC-SHA:!DHE-RSA-CAMELLIA256-SHA:!DHE-RSA-CAMELLIA128-SHA:!DHE-DSS-CBC-SHA:!DHE-RSA-DES-CBC3-SHA

Eu tenho que me contentar com a pontuação do SSL Labs caindo de A + para A- porque eu tive que incluir cifras fracas, mas isso é compreensível. Além disso, por algum motivo, a conexão inicial demora muito tempo (vários segundos) - mas pelo menos os pedidos podem ser enviados:)

    
por 17.02.2018 / 22:22