【发布时间】:2012-02-19 22:28:05
【问题描述】:
我的目标: 以编程方式在 Android 中创建 EAP WiFi 配置 - 包括 CA 证书。
问题: 如何以编程方式安装 CA 证书(然后在 EAP WiFi 配置中引用该证书)?
我已经找到了一个非常有用的链接,它允许我在这里创建和保存 EAP WiFi 配置: How to programmatically create and read WEP/EAP WiFi configurations in Android?
但是,这假定您已经在设备上安装了 CA 证书。我想在我的应用中安装证书 - 从应用中的资源或从服务器发送。
这甚至可能吗? (在这种情况下,生根不是一种选择。) 如果有,怎么做?
其他信息...
我还找到了一种将证书添加到 KeyStore 的方法: https://stackoverflow.com/a/4490543/1172101
但是,这专门用于创建安全套接字并通过 HTTPS 进行连接。我想将证书用于 WiFi。
不幸的是,我还没有找到以编程方式安装 CA 证书的方法 - 从应用程序中。
但是,可以通过 Android 中的 Web 浏览器安装证书。因此,解决方案(目前)是: 启动意图以在 Web 浏览器中打开直接访问 CA 证书的 URL。
这可行,但存在一些挑战:
- 用户必须为证书命名。这是一个挑战,因为我们正在以编程方式添加 WiFi 配置。因此,我们必须要求用户为证书提供相同的名称。
- 用户必须输入密码。如果他们没有设置密码,用户将创建一个并输入两次。如果他们设置了安全密码,用户必须记住并输入相同的密码。
- 假设用户成功完成了这些步骤,他将被留在浏览器中。
这引出了几个问题:
- 在我的应用中,有没有办法为用户通过浏览器安装的证书强制命名?
- 从我的应用程序中,有什么方法可以知道证书安装何时完成,然后将焦点返回给我的应用程序?
如果您需要任何说明,请告诉我。
【问题讨论】:
标签: android x509certificate android-wifi