【问题标题】:Can't install CA certificate on Android 11无法在 Android 11 上安装 CA 证书
【发布时间】:2020-08-06 17:23:19
【问题描述】:

在 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

【问题讨论】:

  • 在 Android 11 beta 1 上启动 KeyChain.createInstallIntent() 对我来说效果很好。
  • @M66B 谢谢。尝试 KeyChain.createInstallIntent() 并选择证书文件,我们仍然收到此错误。是否成功选择了一个没有错误的证书文件?
  • 它对我来说很好用(Pixel 3a XL,Android 11 beta 1)
  • @M66B 即使在装有 Android 11 Beta 的同一台设备上,问题仍然存在。你能和我分享你的代码吗?

标签: android certificate android-11


【解决方案1】:

我也遇到了同样的问题。

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

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

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

【讨论】:

  • 我不知道为什么这个答案被否决了......我能够按照这些说明安装 CA 证书
  • @Feedbacker 没问题。 ans 应该会有所帮助。
  • 这很有帮助,谢谢。
  • 做了所有这些,但它仍然不适用于应用程序,(仅适用于 chrome)
  • 救了我的命。在“现代”三星手机上,它隐藏在设置 -> 生物识别和安全 -> 其他安全设置 -> 从设备存储安装 -> CA 证书 -> 仍然安装。
【解决方案2】:

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

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

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

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

这意味着从 Android 11+ 开始,您可以自动设置仅在设备上单独和隔离的工作配置文件中使用的 CA 证书,或者为您预安装应用的新设备进行自动设置,而不能做其他任何事情。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    相关资源
    最近更新 更多