java.security.cert.CertPathValidatorException: âncora confiável para o caminho de certificação não encontrado. Android 2.3
No meu servidor (servidor de produção), tenho um certificado ss goDaddy. Tenho aplicativos para iOS e Android conectados ao servidor, iOS conectado sem problemas, android com versões 4. * tudo é bom, mas com dispositivos com 2.3. * Sempre recebo uma SSLHandshakeException.
Eu fiz exatamente como na página de desenvolvedores do Android (https://developer.android.com/training/articles/security-ssl.html)
Eu já vi threads semelhantes aqui no stackoverflow (aqui) mas nenhum está ajudando.
Então eu viesta tópico falando sobre o uso estendido de chave, mas ao depurar, recebo as seguintes informações:
[2]: OID: 2.5.29.37, Critical: false
Extended Key Usage: [ "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" ]
Portanto, acho que o certificado não está "forçando" o uso estendido de chave.
Também emesta thread, existem outras causas possíveis, como data / hora completamente erradas, que nem todas existem.
Levando isso em consideração, agora não sei onde pode estar o problema.
Alguma sugestão?
EDITAR: StackTrace abaixo:
08-04 16:54:30.139: W/System.err(4832): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161)
08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:664)
08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
08-04 16:54:30.159: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)