如何在Android设备上安装证书链
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android设备上安装证书链相关的知识,希望对你有一定的参考价值。
API 27上的android设备,我的应用程序是设备所有者。
使用DevicePolicyManager,有人可以提供一个installKeyPair功能的例子吗?
public boolean installKeyPair (ComponentName admin,
PrivateKey privKey,
Certificate[] certs,
String alias,
boolean requestAccess)
如何获取.pem文件(从.p12)到PrivateKey以及Certificate对象?
我似乎无法在网上找到任何例子......
答案
如果您查看CertInstallerActivity的AOSP源代码,您将看到一个示例用法:
您需要将文件作为字符串读取,然后您似乎只需遵循其使用模式:
String alias = "alias_as_string";
String key = "pem_as_string";
String cert = "crt_as_string";
// create keySpec from the pem file
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(
Base64.decode(key, Base64.DEFAULT));
// generate the RSP private key from the keySpec
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privatekey = kf.generatePrivate(keySpec);
// generate the certificate object for the given content
Certificate certificate = CertificateFactory.getInstance("X.509")
.generateCertificate(
new Base64InputStream(new ByteArrayInputStream(cert.getBytes()),
Base64.DEFAULT));
然后实际调用DevicePolicyManager:
dpm.installKeyPair(null, privatekey, certificate, alias);
我从来没有用过这个,只是在阅读AOSP
另一答案
如果您从.p12(PKCS12)文件开始,您可能还想查看KeyChain.createInstallIntent
(documentation)。
以上是关于如何在Android设备上安装证书链的主要内容,如果未能解决你的问题,请参考以下文章
无法在工作资料上的 Android 11 上安装 CA 证书