Android - validando certificados autoassinados além dos certificados SSL normais

Eu tenho um aplicativo Android que chama serviços da web por SSL. Na produção, teremos certificados SSL normais assinados por uma CA confiável. No entanto, precisamos ser capazes de oferecer suporte a certificados autoassinados (assinados por nossa própria autoridade de certificação).

Eu tenho implementado com sucesso a solução sugerida de aceitar certificados auto-assinados, mas isso não funcionará devido ao risco de ataques do homem no meio. Eu então criei um trustmanager que valida que a cadeia de certificados foi de fato assinada por nossa CA.

O problema é que tenho que ignorar a validação SSL normal - o aplicativo agora só fala com um servidor que tenha um dos nossos certificados auto-assinados instalados.

Estou um pouco perdido, pesquisei bastante, mas não encontrei nada. Eu estava esperando encontrar uma forma de adicionar programaticamente nossa CA ao truststore no dispositivo, pois essa seria a maneira menos intrusiva de lidar com o problema.

O que eu quero alcançar: 1. Suporte padrão completo para certificados SSL normais. 2. Suporte adicional para certificados auto-assinados assinados por nossa própria CA.

Algum conselho?

questionAnswers(1)

yourAnswerToTheQuestion