代码之家  ›  专栏  ›  技术社区  ›  nategood

adobe air中的ssl客户端证书认证

  •  3
  • nategood  · 技术社区  · 15 年前

    我试图在adobe air中使用restful web服务。该服务使用客户端证书进行身份验证,因此我需要设置air/actionscript的 URLRequest 当连接到这个restful服务时。

    在adobe air中是否可以设置cert/私钥?

    我确实发现 some documentation 从adobe开始,我在linux上为air 1.5添加ssl证书存储,但我希望有一个独立于平台的解决方案。

    3 回复  |  直到 11 年前
        1
  •  4
  •   Jamie Love    14 年前

    我找不到做这件事的方法(好吧,反正还没有)。

    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*" 取消勾选。对于不支持吊销的服务器,这可能只需要自签名服务器证书,但我不确定。

    不管怎样,正如你所看到的,一切都一团糟。

        2
  •  0
  •   dlongley    14 年前

    差不多一年后…它可以在javascript中完成,使用opensource project forge可能有帮助,也可能没有帮助:

    http://github.com/digitalbazaar/forge/blob/master/README

    webid演示程序目前正在使用forge提供客户端证书作为身份验证机制。这只是一个演示,所以ssl证书是自签名的:

    https://webid.digitalbazaar.com/manage/

    https://payswarm.com/webid-demo/

        3
  •  0
  •   Craig Beswetherick    11 年前

    这里有一个类: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SecureSocket.html

    我相信addBinaryChainBuildingCertificate方法应该能够完成此任务。

    推荐文章