Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式安装自签名证书_Android_Ssl_Https_Certificate_X509certificate - Fatal编程技术网

Android 以编程方式安装自签名证书

Android 以编程方式安装自签名证书,android,ssl,https,certificate,x509certificate,Android,Ssl,Https,Certificate,X509certificate,我正在启动KeyChain意图,以便在内存中安装一个自签名证书,作为X509Certificate对象(由X509TrustManager通过checkServerTrusted方法获得)。 使用此代码: Intent intent = KeyChain.createInstallIntent(); intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded()); intent.putExtra(KeyChain.EXTRA_

我正在启动KeyChain意图,以便在内存中安装一个自签名证书,作为X509Certificate对象(由X509TrustManager通过checkServerTrusted方法获得)。 使用此代码:

Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded());
intent.putExtra(KeyChain.EXTRA_NAME, "certificate");
context.startActivityForResult(intent,  0);
启动了新活动,我可以收到消息“certificate is installed”,但我无法通过安全证书列表找到它,并且在尝试连接到该主机时,它似乎没有安装


你知道怎么解决吗

您提到的安全证书列表屏幕仅包含已添加到Android设备的可信CA证书列表。(注意:系统证书列表是设备制造商设置的受信任CA列表)。没有屏幕(至少在非根手机上)显示密钥链的证书

为了让应用程序访问证书/密钥,它需要向操作系统请求权限。为此,KeyChain类有一个名为choosePrivateKeyAlias的方法,该方法向用户显示一个活动,以选择应用程序可以访问的证书。此活动应列出使用上述方法安装的所有导入的证书

有关更多详细信息,请参阅下面的链接


您是否找到了这个问题的答案?