Di recente ho rinnovato il certificato del sito HTTPS sul server che conservo per un cient e, durante l'installazione, ho rafforzato le impostazioni di apache ssl, in particolare i protocolli e le cifre supportati (ad esempio, ho finalmente rimosso SSL3, ecc.)
Purtroppo, nel giro di un'ora ho ricevuto telefonate dal cliente che lamentavano un problema. Il cliente ha una base sul campo di addetti alle vendite (circa 50 in tutti gli Stati Uniti e in Canada) che utilizzano tablet Android emessi dalla società con un ordine personalizzato e un'applicazione di tracciamento dei clienti. Quell'applicazione ha smesso di funzionare e il mio client non è ora in grado di ricevere ordini. Questo è piuttosto critico, in quanto sono in ritardo di oltre $ 100.000 per l'evasione dell'ordine il giorno dopo.
La prima cosa che ho tracciato è che il nuovo certificato CA radice non è attendibile per impostazione predefinita in Android 4 (DigiCert Global Root G2). Ho installato quel certificato su un dispositivo di esempio che ho ricevuto e ora almeno Chrome può connettersi al sito. Tuttavia, l'app non è ancora in grado di connettersi al server. Genera errore "Connessione chiusa dal peer" ogni volta che tenta di comunicare con il server.
La mia ipotesi è che il problema sia con la suite di crittografia supportata - suppongo che il codice Android nativo non supporti nessuna delle cifre installate sul server. Pertanto ho ricevuto due domande finora:
Quali sono le cifre che devo abilitare sul server per consentire la connessione dell'app nativa Android 4? Per quanto ne so, l'app utilizza
java.net.HttpURLConnection
per connettersi per rimuovere l'host.Cos'altro devo cercare / abilitare per provare a farlo funzionare?
Tieni presente che l'aggiornamento a una versione più recente di Android non è un'opzione, poiché il costo è troppo proibitivo per il mio cliente. Oggi e domani (sabato e domenica) devo risolvere questo problema o l'intera attività del cliente è a rischio.
AGGIORNAMENTO: ecco i codici / protocolli attualmente abilitati:
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