2010-02-02 141 views
3

我试图在Adobe AIR中使用REST风格的Web服务。该服务使用客户端证书进行身份验证,因此我需要在连接到此RESTful服务时设置AIR/Actionscript的URLRequest使用的证书和私钥。Adob​​e AIR中的SSL客户端证书认证

是否可以在Adobe AIR中设置Cert/Private Key?

我确实发现Adobe的some documentation有关在Linux上添加到AIR 1.5的SSL证书存储区的问题,但我希望获得独立于平台的解决方案。

回答

4

我找不到这样做的任何方式(好吧,还没有)。

Adob​​e使用基础操作系统证书存储。在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*"并取消选中这,这可能是唯一与不支持吊销服务器自签名的服务器证书必要的,但我不知道。

无论如何,你可以看到,它的所有乌七八糟。