Fer*_*ada 5 java ssl android client-certificates
我正在为Android 5或更高版本开发应用程序。
我需要加载SSL客户端证书才能向API发出请求。
我可以实现从downloads文件夹加载证书并发出请求:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "certificate.pfx");
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream(file), "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(clientStore, "password".toCharArray());
KeyManager[] kms = kmf.getKeyManagers();
SSLContext sslContext = null;
sslContext = SSLContext.getInstance("TLS");
sslContext.init(kms, null, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有可能从Android系统加载证书(当然,如果我以前像这样的帖子先前已安装在Android中)。
可能吗?
将您的证书文件添加到资产目录中并替换:
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "certificate.pfx");
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream(file), "password".toCharArray());
Run Code Online (Sandbox Code Playgroud)
和
KeyStore clientStore = KeyStore.getInstance("PKCS12");
InputStream is = context.getAssets().open("certificate.pfx");
clientStore.load(is, "password".toCharArray());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |