Lee*_*fin 13 java android certificate keystore ssl-certificate
我有一个PKCS#12文件,我认为它是一个密钥库文件,因为它包含一个密钥条目和一个证书条目.
在Android中,我看到人们通过以下方式以编程方式安装密钥库(代码来自Android开发人员博客):
byte[] keystore = . . (read from a PKCS#12 keystore)
Intent installIntent = KeyChain.createInstallIntent();
installIntent.putExtra(KeyChain.EXTRA_PKCS12, keystore);
startActivityForResult(installIntent, INSTALL_KEYSTORE_CODE);
Run Code Online (Sandbox Code Playgroud)
我还看到人们以编程方式只安装包装在密钥库中的证书:
Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, cert);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
此外,我还看到人们安装密钥库和密钥库中包含的证书.例如,本文向我们展示了如何首先安装密钥库,然后以编程方式安装包装在密钥库中的证书.
我真的很困惑我应该何时才安装密钥库以及何时应该安装证书(包含在密钥库中)?什么时候应该安装?请问有人让我明白这个吗?
例如,我的密钥库PKCS#12文件(mycert.p12)包含密钥/证书对,它用于连接到VPN服务器.什么时候我的android客户端应该安装密钥库中包含的密钥库和证书?客户端何时应该只安装包装在密钥库中的证书?有什么区别 ?我对此很困惑.
bis*_*oje -1
由于尚未有人回答您,我希望我至少可以澄清您链接到的博客文章中的一些观点。
过去,如果应用程序需要对安全 SSL Web 服务器进行身份验证,或通过客户端证书对服务器进行用户身份验证,则通常会维护自己的密钥存储。
这是这里的两个基本用例:
您问题中的第二段代码旨在创建证书链(当您不使用自签名证书时):
我们首先使用密钥别名获取私钥和证书链,然后创建并验证签名以检查密钥是否确实可用。由于我们使用自签名证书,“链”由单个条目组成,但对于由 CA 签名的证书,您需要在返回的数组中找到实际的最终实体证书。
安装 CA 证书与安装 PKCS#12 文件没有太大区别:您将证书加载到字节数组中并将其作为额外内容传递给安装意图。
Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, cert);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我希望这个解释有帮助!:)
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |