Contrariamente a la respuesta aceptada , no necesita un administrador de confianza personalizado, ¡debe corregir la configuración de su servidor!
Me encontré con el mismo problema al conectarme a un servidor Apache con un certificado dynadot / alphassl instalado incorrectamente. Me estoy conectando usando HttpsUrlConnection (Java / Android), que estaba lanzando -
javax.net.ssl.SSLHandshakeException:
java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.
El problema real es una configuración incorrecta del servidor: pruébelo con http://www.digicert.com/help/ o similar, e incluso le indicará la solución:
"El certificado no está firmado por una autoridad de confianza (comprobando en el almacén raíz de Mozilla). Si compró el certificado de una autoridad de confianza, probablemente solo necesite instalar uno o más certificados intermedios . Póngase en contacto con su proveedor de certificados para obtener ayuda para hacerlo. plataforma de servidor ".
También puede consultar el certificado con openssl:
openssl s_client -debug -connect www.thedomaintocheck.com:443
Probablemente verás:
Verify return code: 21 (unable to verify the first certificate)
y, anteriormente en la salida:
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`
La cadena de certificados solo contendrá 1 elemento (su certificado):
Certificate chain
0 s:/OU=Domain Control Validated/CN=www.thedomaintocheck.com
i:/O=AlphaSSL/CN=AlphaSSL CA - G2
... pero debe hacer referencia a las autoridades de firma en una cadena a una en la que Android confíe (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
Las instrucciones (y los certificados intermedios) para configurar su servidor generalmente son proporcionados por la autoridad que emitió su certificado, por ejemplo: http://www.alphassl.com/support/install-root-certificate.html
Después de instalar los certificados intermedios proporcionados por mi emisor de certificados, ahora no tengo errores al conectarme usando HttpsUrlConnection.