Android中的SSL客户端身份验证

Android中的SSL客户端身份验证,第1张

概述我需要编写将与.Net服务通信的Android应用.我必须进行服务器/客户端身份验证.我发现了一些有用的主题(thisblog和thisblog),但是它们都显示了如何进行服务器身份验证.如何进行客户端身份验证?我找到了一个有用的discussion,但是作者使用了Sockets,但是我需要通过HttpClient来实现.

我需要编写将与.Net服务通信的Android应用.我必须进行服务器/客户端身份验证.我发现了一些有用的主题(this blog和this blog),但是它们都显示了如何进行服务器身份验证.如何进行客户端身份验证?我找到了一个有用的discussion,但是作者使用了Sockets,但是我需要通过httpClIEnt来实现.

解决方法:

以下内容使我可以使用自己的rootca和客户端服务器证书.即,安全而不用付钱给任何人:-)

使用openssl创建rootca以及客户端和服务器密钥以及证书(网络上的许多教程)

使用bouncycastle作为提供者和-importcert使用keytool创建rootcacert.bks

使用openssl pkcs12 -export创建clIEntcertandkey.p12 …

httpClIEnt httpClIEnt = null;try {    httpParams httpParameters = new BasichttpParams();    KeyStore rootca = KeyStore.getInstance("BKS");    rootca.load(getResources().openRawResource(R.raw.rootcacert),"bkskeystorepass".tochararray());    KeyStore mycert = KeyStore.getInstance("pkcs12");    mycert.load(getResources().openRawResource(R.raw.clIEntcertandkey),"pkcs12storepass".tochararray());    SSLSocketFactory sockfact = new SSLSocketFactory(mycert,null,rootca);    SchemeRegistry registry = new SchemeRegistry();    registry.register(new Scheme("https",sockfact , 443));    httpClIEnt = new DefaulthttpClIEnt(new ThreadSafeClIEntConnManager(httpParameters, registry), httpParameters);} catch (Exception e) {    e.printstacktrace();}
总结

以上是内存溢出为你收集整理的Android中的SSL客户端身份验证全部内容,希望文章能够帮你解决Android中的SSL客户端身份验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存