Ao contrário da resposta aceita, você não precisa de um gerenciador de confiança personalizado, precisa corrigir a configuração do servidor!
Ocorreu o mesmo problema ao conectar-me a um servidor Apache com um certificado dynadot / alphassl incorretamente instalado. Estou me conectando usando HttpsUrlConnection (Java / Android), que estava lançando -
javax.net.ssl.SSLHandshakeException:
java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.
O problema real é uma configuração incorreta do servidor - teste-o com http://www.digicert.com/help/ ou similar, e ele fornecerá a solução:
"O certificado não é assinado por uma autoridade confiável (checando no repositório raiz do Mozilla). Se você comprou o certificado de uma autoridade confiável, provavelmente precisará instalar um ou mais certificados intermediários . Entre em contato com o seu provedor de certificados para obter ajuda sobre isso. plataforma de servidor ".
Você também pode verificar o certificado com o openssl:
openssl s_client -debug -connect www.thedomaintocheck.com:443
Você provavelmente verá:
Verify return code: 21 (unable to verify the first certificate)
e, anteriormente na saída:
depth=0 OU = Domain Control Validated, CN = www.thedomaintocheck.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, CN = www.thedomaintocheck.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, CN = www.thedomaintocheck.com
verify error:num=21:unable to verify the first certificate`
A cadeia de certificados conterá apenas 1 elemento (seu certificado):
Certificate chain
0 s:/OU=Domain Control Validated/CN=www.thedomaintocheck.com
i:/O=AlphaSSL/CN=AlphaSSL CA - G2
... mas deve referir as autoridades de assinatura em uma cadeia de volta a uma confiável do Android (Verisign, GlobalSign, etc):
Certificate chain
0 s:/OU=Domain Control Validated/CN=www.thedomaintocheck.com
i:/O=AlphaSSL/CN=AlphaSSL CA - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
As instruções (e os certificados intermediários) para configurar seu servidor geralmente são fornecidas pela autoridade que emitiu seu certificado, por exemplo: http://www.alphassl.com/support/install-root-certificate.html
Depois de instalar os certificados intermediários fornecidos pelo meu emissor de certificado, agora não tenho erros ao conectar usando HttpsUrlConnection.