Android上的SSL客户端

我目前正在为Android(2.2)和使用SSL的服务器编写客户端部分。 我设法在服务器和普通客户端之间交换消息,但Android似乎对自签名证书不太满意。 我搜索了Stackoverflow和谷歌搜索很多人都有类似的问题。 到目前为止,我发现的所有答案要么不起作用,要么没有任何意义。 大多数代码示例都是针对HTTPS的,但是我无法使用,因为我需要通过套接字进行通信(SSLSocket是我最好的猜测)。 我已经尝试了很多不同的代码,但现在我又回到了零。

到目前为止,我已经发现我必须创建一个证书(认为我有这个权利)和一个自定义的TrustManager。 很明显,我一直没有找到任何工作代码,这就是为什么我在这里问,因为通常有一些真正有帮助的人。

我正在寻找关于应该完成什么的详细描述,以及一些代码,这些代码可以制作成可用的Android客户端代码。

提前致谢


我已经完成了移植原生android浏览器。 我只是改变了如何创建SSL上下文。 我答应我也会在SandroB网站上做一些工作示例,但是...... :)

https://market.android.com/details?id=org.sandrob

http://code.google.com/p/sandrob/source/browse/misc/examples/HttpsConnection.java


CertificateChainValidator是android资源的一部分。 至少在版本/标签2.2.1_r1中

为了使它工作,您可以从android源代码构建浏览器并更改SSLContext在HttpsConnection.java文件中的初始化方式。

您需要keyManagers(使用cerfile /密码初始化)和trustManagers(全部信任)。

sslContext.engineInit(keyManagers,trustManagers,null,cache,null);


https://market.android.com/details?id=org.sandrob.sslexample

随时根据需要更改来源。

链接地址: http://www.djcxy.com/p/51633.html

上一篇: SSL Client on Android

下一篇: XML equality problem with Scala