无法在 Android 11 上安装 CA 证书

Can't install CA certificate on Android 11

在 Android11 的预览版中,我在尝试安装 CA 证书时遇到错误:

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

错误信息是:

Can't install CA certificates

CA certificates can put your privacy at risk and must be installed in Settings.

我在 Android 文档 上没有找到关于此更改的任何内容。有任何想法吗?任何解决方法(除了从设置手动安装)?

更新 (28/4):

在问题跟踪器中发现一个错误:https://issuetracker.google.com/issues/151858120

在 Android 11 企业更新日志 here 中有一个关于此的小注释,上面写着:

Note: Apps installed on unmanaged devices or in a device's personal profile can no longer install CA certificates using createInstallIntent(). Instead, users must manually install CA certificates in Settings.

听起来很像这是故意的,您将无法在普通的非托管设备上绕过它。您需要研究完整的 Android 设备管理,或者向您的用户提供有关手动设置的说明。

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

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

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

我也遇到了同样的问题

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

在Android11、要安装CA证书,用户需要手动:

  1. 打开设备设置
  2. 转到'Security'
  3. 转到'Encryption & Credentials'
  4. 转到 'Install from storage' 或 'Install a certificate'(取决于设备)
  5. Select 'CA Certificate' 来自可用类型列表
  6. 接受警告。
  7. 浏览到设备上的证书文件并打开它
  8. 确认证书安装

在“现代”三星手机上

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