gpt4 book ai didi

android - Android 中的 SSL 客户端身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:57 24 4
gpt4 key购买 nike

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

最佳答案

以下允许我使用我自己的 rootca 和客户端+服务器证书。即,无需付钱给任何人的安全 :-)

使用 openssl 创建您的 rootca,以及客户端和服务器 key 和证书(网上有很多教程)

使用 keytool 以 bouncycaSTLe 作为提供者和 -importcert 创建 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 - Android 中的 SSL 客户端身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com