2013-10-23 22 views
0

我在写一个Android应用程序,需要执行与我的网络中的某个Web服务器的HTTPS连接。将用户信任的证书用于HTTPS连接

此Web服务器具有由自定义证书颁发机构签名的服务器证书,显然,尝试进行简单连接失败的原因是在设备尝试建立连接时CA不知道:足够公平。

现在我在设备上下载了CA证书,并将其导入到用户“可信证书”设置页面。它出现了(在“用户”选项卡下),我可以点击它并看到它有预期的细节。

然而,这种新的CA证书似乎是由设备被忽略,当它进行HTTPS连接,我得到了确切的同样的错误我连接时收到了:

信任锚认证路径没有找到。

如果我尝试浏览使用设备上的Chrome的服务器,会发生同样的事情。我被告知“这个网站的安全证书存在问题”。

我使用openssl verify测试了我的认证链,看起来一切正常。

我很想知道这里发生了什么。

我可以在无法在浏览器中打开Web服务器页面的情况下生活,但我希望至少能够使用用户“可信凭证”列表从我的应用程序建立连接(并且禁用证书验证一共是而不是一个可接受的解决方案)。

我该怎么做?

+0

你不能把它当作自签名证书吗? –

+0

@ user2310289:对待同样的...什么? – ereOn

回答

0

我终于找到什么是错的:

我所用:

SSLContext sslContext = SSLContext.getInstance("TLS"); 

由于某种原因,无法与我的测试瓶SSL只启用服务器正常工作。

事情是更好的,当我把它改为:

SSLContext sslContext = SSLContext.getInstance("SSL"); 

不过不知道为什么出现这种情况,但它清楚地解决了这个问题对我来说。