Adobe AIR 中的 SSL 客户端证书身份验证

nat*_*ood 3 air flash ssl urlrequest actionscript-3

我正在尝试在 Adob​​e AIR 中使用 RESTful Web 服务。该服务使用客户端证书进行身份验证,因此我需要设置 AIR/ActionscriptURLRequest在连接到此 RESTful 服务时使用的证书和私钥。

是否可以在 Adob​​e AIR 中设置证书/私钥?

我确实从 Adob​​e 找到了一些有关添加到 Linux 上 AIR 1.5 的 SSL 证书存储的文档,但我希望有一个独立于平台的解决方案。

Jam*_*ove 5

我找不到任何方法可以做到这一点(好吧,无论如何还没有)。

Adobe 使用底层操作系统证书存储。在 Windows 中,这与 IE(和 Google Chrome)使用的含义相同。

我想出的唯一解决方案是,在 Linux 下,按照您包含的链接中的说明进行操作,对于 Windows,让用户通过 IE 下载/安装客户端证书(以及服务器根 CA,因为我们拥有该组织的自签名证书),然后 Air 使用这些证书。

这带来了一些烦恼 -

  1. 除非用户安装根 CA,否则系统会要求他们确认服务器的安全证书。
  2. 将要求用户确认对服务器的每个请求都使用了客户端证书(并且在执行大量数据请求的业务应用程序中,这使其无法使用)。要解决此问题,我发现的唯一方法是让用户进入 IE,然后启用Tools -> Internet Options -> Security -> Custom Level -> Miscellaneous -> "Don't prompt for client certificate selection when no certificate or only one certificate exists". 这会停止不断的请求(当然,如果有多个证书,则不起作用。
  3. 尽管如此,Adobe Air 仍然会失败,除非用户也在 IE 中转到Tools -> Internet Options -> Advanced -> Security -> "Check for service certificate revocation*"并取消选中此选项。这可能仅对于不支持撤销的服务器的自签名服务器证书是必要的,但我不确定。

无论如何,正如你所看到的,这一切都是一团糟。