【问题标题】:How can I add support for a specific SSL certificate in my AIR Application如何在我的 AIR 应用程序中添加对特定 SSL 证书的支持
【发布时间】:2010-10-21 19:46:47
【问题描述】:

我需要在一个用 Javascript 编写的 Adob​​e-AIR 应用程序的 iFrame 中打开一个特定的 SSL 安全站点。

出于这个原因,我构建了一个小型测试应用程序,它在 iFrame 中打开站点 - 这很好用,但不接受服务器证书。出现一个弹出窗口并提示用户接受不受信任的证书。 服务器证书是有效的,由 Trustcenter 颁发,默认情况下在所有主要浏览器(Webkit、IE、FF、...)中都被接受。那么为什么会这样呢?

为了确保服务器证书没有问题,我实现了另外两个相当常见的站点,只是为了看看他们的证书是否被接受。

嗯.. 我只需要我的应用程序接受我自己服务器的 ssl 证书。 所以这是我的问题:如何让我的应用程序信任“它是家庭服务器”。

提前感谢您的意见。

编辑: 下面是一些示例代码:

<html>
<head>
    <title>Prototype 1</title>
    <link href="sample.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="lib/jquery/jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
        var fbOpen = 0;
        function drawFb(link, sbRoot) {

            if (fbOpen != link) {
                fbOpen = link;
                $('#fbContainer').html('<iframe src="'+link+'" '
                                        +'width="700" height="480" ></iframe>')
                $('#fbContainer').show('slow');         
            }
            else {
                fbOpen = 0;
                $('#fbContainer').hide('slow');     
            }
        }
    </script>
</head>
<body style="background-color:yellow;padding:1em;">
    <h3>Example</h3>
    <p>Hi there! This is a basic example showing the usage of Iframes...</p>
    <input type="submit" onclick="drawFb('https://www.example.com/');" value="Test Own" />
    <input type="submit" onclick="drawFb('https://www.google.de/');" value="Test G" />
    <input type="submit" onclick="drawFb('https://www.adobe.com/');" value="Test A" />
    <div id="fbContainer" style="display:none;width:700px;height:480px;border:1px dashed red;"></div>
   </body>

【问题讨论】:

  • 我不知道您是否使用 Linux,但这仍然可能会有所帮助:kb2.adobe.com/cps/408/kb408085.html ... 有一个部分是关于存储用于 Adob​​e AIR 的 SSL 证书的部分,称为“SSL 证书”店铺”。显然,为每个用户修改 CA 存储可能不是一个可行的选择,但添加证书可能会帮助您诊断问题。
  • 嗨,德隆利!谢谢你的评论。我自己在 Linux 上工作,但该应用程序也应该适用于 OS-X 和 WINdows。我已经偶然发现了您发布的页面,但没有找到更接近的解决方案。

标签: javascript ssl https air


【解决方案1】:

您遇到的可能是“同源策略”。 也许 adobe.com 可以正常工作是因为核心组件已经预加载了 adobe.com 的来源?

确保在测试中 iframe 的服务器实际上与外部 HTML 页面相同。

这似乎是您配置这些特殊情况的方式: http://livedocs.adobe.com/flex/3/html/help.html?content=ProgrammingHTMLAndJavaScript_11.html

【讨论】:

  • 嗨 Marsh Ray,感谢您的回复。我尝试了在同一域上托管包含 iframe 的外部文档的方法,正如 iframe 所指向的那样,但 air 仍然要求提供丢失的证书。 (example.com/test.html 包含一个指向 example.com/foo/bar.html 的 iframe。应用程序打开一个指向第一个 URL 的 iframe,即 test.html)。我尝试在内部 Iframe 上指定 documentRoot 和 sandboxRoot 属性,但没有成功。我做错了吗?
  • 另一个旁注:现在我不需要框架内容作为应用程序的一部分。不需要跨站点脚本。框架内容仅用于显示信息。此外,应用程序应该能够从启用 ssl 的站点获取文件(产品导出)。
【解决方案2】:

我似乎这是 Ubuntu 64 位上的 AIR 中的一个错误。当我在 Vista、Win7 或 MacOS 上测试应用程序时,应用程序不会要求证书。

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多