我需要编写将与.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客户端身份验证所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)