В отличие от принятого вами ответа, вам не нужен пользовательский менеджер доверия, вам нужно исправить конфигурацию вашего сервера!
Я столкнулся с той же проблемой при подключении к серверу Apache с неправильно установленным сертификатом dynadot / alphassl. Я подключаюсь с использованием HttpsUrlConnection (Java / Android), который метался -
javax.net.ssl.SSLHandshakeException:
java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.
. Фактическая проблема - неправильная конфигурация сервера - проверьте ее с помощью http://www.digicert.com/ help / или аналогичный, и он даже скажет вам решение:
«Сертификат не подписан доверенным органом (проверка на корневой магазин Mozilla). Если вы купили сертификат из (g3) вам, вероятно, просто нужно установить один или несколько промежуточных сертификатов . Обратитесь к поставщику сертификатов за помощью для этого для вашей серверной платформы. »
Вы также можете проверить сертификат с помощью openssl:
openssl s_client -debug -connect www.thedomaintocheck.com:443
Вероятно, вы увидите:
Verify return code: 21 (unable to verify the first certificate)
и ранее на выходе:
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`
Цепочка сертификатов будет содержать только один элемент (ваш сертификат):
Certificate chain
0 s:/OU=Domain Control Validated/CN=www.thedomaintocheck.com
i:/O=AlphaSSL/CN=AlphaSSL CA - G2
... но должна ссылаться на полномочия подписки в цепочке обратно на доверенную Android (Verisign, GlobalSign и т. д.):
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
Инструкции (и промежуточные сертификаты) для настройки вашего сервера обычно предоставляются органом, выдавшим ваш сертификат, например: http://www.alphassl.com/support/install-root-certificate.html
После установки промежуточных сертификатов, предоставленных моим эмитентом сертификатов, у меня теперь нет ошибок при подключении с помощью HttpsUrlConnection.