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

标签 flash actionscript-3 ssl air urlrequest

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

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

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

最佳答案

我找不到任何方法来做到这一点(好吧,反正现在还没有)。

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没有证书或只有一个证书存在时的客户端证书选择”。这会停止不断的请求(当然,如果有多个证书则不起作用。
  3. Adobe Air 仍然会失败,尽管如此,除非用户在 IE 中也转到 工具 -> Internet 选项 -> 高级 -> 安全 ->“检查服务证书吊销*” 并取消选中它。对于不支持吊销的服务器,这可能只需要自签名服务器证书,但我不确定。

无论如何,如您所见,这一切都是一团糟。

关于flash - Adobe AIR 中的 SSL 客户端证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187758/

相关文章:

javascript - 将鼠标点击从 Flash 发送到 JS

javascript - 如何在加载 Flash 视频时在 Chrome 中设置断点?

java - org.bouncycaSTLe.tls.crypto.TlsCertificate getSubject() 和其他 getter

java - 异常 CertificateException 永远不会在相应的 try 语句的主体中抛出

flash - 如何使用JSFL查找音频剪辑的长度

actionscript-3 - as3 - 如何停止视频并分离 NetStream

java - Android 可以接听空中来电吗?

flash - 帮助检查嵌入代码 AS3 中的 flashVars 值

ssl - Mule SOAP 调用 SSL 结果为 "unable to find valid certification path to requested target"

linux - ALSA 音频和 YouTube