我正在尝试在 Adobe AIR 中使用 RESTful Web 服务。该服务使用客户端证书进行身份验证,因此我需要在连接到此 RESTful 服务时设置 AIR/Actionscript 的 URLRequest
使用的证书和私钥。
可以在 Adobe AIR 中设置证书/私钥吗?
我确实找到了 some documentation来自 Adobe 的关于在 Linux 上添加 AIR 1.5 的 SSL 证书存储,但我希望有一个独立于平台的解决方案。
最佳答案
我找不到任何方法来做到这一点(好吧,反正现在还没有)。
Adobe 使用底层操作系统证书存储。在 Windows 中,这意味着 IE(和 Google Chrome)使用的是同一个。
我想出的唯一解决方案是,在 linux 下,按照您包含的链接中的说明进行操作,对于 Windows,让用户通过 IE 下载/安装客户端证书 (和服务器根 CA,因为我们有组织的自签名证书),然后 Air 使用这些证书。
这带来了一些烦恼 -
- 除非用户安装根 CA,否则他们会被要求确认服务器的安全证书。
- 用户将被要求确认客户端证书用于对服务器的每个请求(并且在执行大量数据请求的业务应用程序中,这使其无法使用)。要解决此问题,我发现的唯一方法是让用户进入 IE,启用
Tools -> Internet Options -> Security -> Custom Level -> Miscellaneous -> "Don't prompt for没有证书或只有一个证书存在时的客户端证书选择”
。这会停止不断的请求(当然,如果有多个证书则不起作用。 - Adobe Air 仍然会失败,尽管如此,除非用户在 IE 中也转到
工具 -> Internet 选项 -> 高级 -> 安全 ->“检查服务证书吊销*”
并取消选中它。对于不支持吊销的服务器,这可能只需要自签名服务器证书,但我不确定。
无论如何,如您所见,这一切都是一团糟。
关于flash - Adobe AIR 中的 SSL 客户端证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187758/