移动SSL证书 - 现在获得java.security.cer.CertPathValidatorException

时间:2014-10-07 00:14:00

标签: java android ssl

我最近将我的后端(rails)移到了Digital Ocean。我在那里安装了我的ssl证书(由CA签名),浏览器在Web应用程序中识别并相应地显示。

我去和我的Android客户端做了一些工作 - 只是为了从Volley那里得到这个例外:

10-06 16:57:20.448: D/Error.Response(10668): com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

我不确定如何处理这件事。当我最初在Heroku安装了证书时,我没有看到这个 - 只有在移动证书之后。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

出现此错误是因为我在服务器上安装的证书是没有链的主证书。我将辅助证书与主要证书连接成一个文件,安装在服务器上,Android接受了SSL连接。

我看到很多资源都在谈论编写自定义信任管理器等。我会先尝试测试你的证书链,并在做其他一些事情之前纠正它。

答案 1 :(得分:0)

如果它在应用程序中不起作用但在浏览器中工作则通常是问题,该站点使用服务器名称指示(SNI)在单个IP地址上具有多个证书。所有现代浏览器都支持此功能,但Android不附带旧的Apache HTTP客户端。

有关详细信息,请参阅HttpClient generates SSLException after acquiring new domain nameAndroid SSL - SNI support