我使用ksoap2
来访问网络服务。在使用production
之前更改测试网络服务之前,一切都很好,使用https协议。
我知道这个问题在stackoverflow上被问过几次,但是没有一个答案适合我。当我用https使用ksoap2时出现此错误(例外):
不受信任的服务器证书
有人在这里提供并回答(解决方案):Android ksoap2 via https但我不明白如何实施该解决方案(或建议的解决方案对我不起作用)
WS使用的证书是自行颁发的ssl证书 - 我只在小公司内部使用该应用程序,但公司系统管理员需要加密连接。
有人能为这个问题提供更好的解释吗?
谢谢。
答案 0 :(得分:1)
我有类似的问题。基本上,当使用与https协议相关的Http相关类时,Android将检查其安装的证书(我相信它存储在os密钥库中)。
由于您的证书是自签名的,因此证书不受信任。 我将自签名证书添加到我的应用程序中以进行测试(alexander.egger在How to install trusted CA certificate on Android device?的回答)。也许你可以使用这种方法? 我想Vedran在Android ksoap2 via https的方法做了类似的事情,也应该有效。这个答案的哪一部分不清楚?
但是,我不认为这些是好的解决方案。
对于我的生产环境,我从所有Android设备信任的签名机构订购了(廉价)ssl证书,并将其安装在服务器上。我不打算在这里做广告,但大多数商业ssl证书都受到所有Android设备的信任,并且通过一些研究很容易找到便宜的证书。我认为这是解决这个问题的最佳方法。 如果没有正确的ssl证书,除了您的特定应用程序之外,您的服务器将不受信任,这可能不是一个好的解决方案(如果您扩展到ios设备,调用Web服务的第三方应用程序等等)。