9

在 Android 11 的预览版上,尝试安装 CA 证书时出现错误:

Intent intent = new Intent("android.credentials.INSTALL");
intent.putExtra("name", getCertName());
intent.putExtra("CERT", getCert());
startActivity(intent);

错误信息是:

无法安装 CA 证书

CA 证书可能会使您的隐私受到威胁,因此必须在“设置”中安装。

在此处输入图像描述

我在Android 文档中没有发现任何关于此更改的信息。有任何想法吗?任何解决方法(除了从设置手动安装)?

更新(28/4):

在 issuetracker 中发现了一个错误:https ://issuetracker.google.com/issues/151858120

4

2 回答 2

25

我也面临同样的问题。

请在 android 11 或 11+ 中按照以下步骤操作。

在 Android 11 中,要安装 CA 证书,用户需要手动:

  1. 打开设备设置
  2. 转到“安全”
  3. 转到“加密和凭据”
  4. 转到“从存储安装”或“安装证书”(取决于设备)
  5. 从可用类型列表中选择“CA 证书”
  6. 接受警告警报。
  7. 浏览到设备上的证书文件并打开它
  8. 确认证书安装

在“现代”三星手机上

它隐藏在设置 -> 生物识别和安全 -> 其他安全设置 -> 从设备存储安装 -> CA 证书 -> 仍然安装

于 2020-12-16T07:53:12.420 回答
5

在此处的 Android 11 企业变更日志中有一条关于此的小注释,其中说:

注意:安装在非托管设备或设备个人配置文件中的应用程序无法再使用 createInstallIntent() 安装 CA 证书。相反,用户必须在“设置”中手动安装 CA 证书。

听起来很像这是故意的,您将无法在正常的非托管设备上绕过它。您要么需要查看完整的 Android 设备管理,要么向您的用户提供有关进行手动设置的说明。

请注意,将您的应用程序注册为普通的设备管理应用程序也是不够的。要使用剩余的DevicePolicyManager.installCaCert API ,您的应用程序必须是设备或配置文件的所有者

这意味着从 Android 11+ 开始,您可以为仅在设备上单独和隔离的工作配置文件中使用的 CA 证书进行自动设置,或者为您预装应用程序的新设备进行自动设置,仅此而已。

如果您希望更改此行为,您可以在此处的 Android 跟踪器中加注星标和评论:https ://issuetracker.google.com/issues/168169729

于 2020-06-19T08:04:02.383 回答