Contrairement à la réponse acceptée, vous n'avez pas besoin d'un gestionnaire de confiance personnalisé, vous devez corriger la configuration de votre serveur!
J'ai rencontré le même problème lors de la connexion à un serveur Apache avec un certificat dynadot / alphassl mal installé. Je me connecte en utilisant HttpsUrlConnection (Java / Android), qui lançait -
javax.net.ssl.SSLHandshakeException:
java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.
Le problème réel est une mauvaise configuration du serveur - testez-le avec http://www.digicert.com/help/ ou similaire, et il vous indiquera même la solution:
"Le certificat n'est pas signé par une autorité de confiance (vérification par rapport au magasin racine de Mozilla). Si vous avez acheté le certificat auprès d'une autorité de confiance, il vous suffit probablement d'installer un ou plusieurs certificats intermédiaires . Contactez votre fournisseur de certificats pour obtenir de l'aide. plate-forme serveur. "
Vous pouvez également vérifier le certificat avec openssl:
openssl s_client -debug -connect www.thedomaintocheck.com:443
Vous verrez probablement:
Verify return code: 21 (unable to verify the first certificate)
et, plus tôt dans la sortie:
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 chaîne de certificats ne contiendra qu'un seul élément (votre certificat):
Certificate chain
0 s:/OU=Domain Control Validated/CN=www.thedomaintocheck.com
i:/O=AlphaSSL/CN=AlphaSSL CA - G2
... mais devrait renvoyer les autorités signataires d'une chaîne à une chaîne approuvée par 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
Les instructions (et les certificats intermédiaires) pour la configuration de votre serveur sont généralement fournies par l'autorité qui a émis votre certificat, par exemple: http://www.alphassl.com/support/install-root-certificate.html
Après avoir installé les certificats intermédiaires fournis par mon émetteur de certificat, je n'ai plus d'erreurs lors de la connexion à l'aide de HttpsUrlConnection.