【问题标题】:Secure IFRAME nested on non-secure page嵌套在非安全页面上的安全 IFRAME
【发布时间】:2011-11-13 08:38:20
【问题描述】:

我有一个客户端,由于特定原因,需要在 HTTP 页面上放置一个指向 HTTPS 页面的 IFRAME。 HTTP 页面与 HTTPS 页面托管在不同的域和服务器上,但都属于同一个客户端。

抛开这个不应该这样做的原因,我发现在实践中很难实施。

正如在此页面上看到的那样:http://www.clevelandutilities.com/obppay.htm 在 HTTP 页面上有一个 HTTPS IFRAME,而没有来自浏览器(Firefox 或 IE)的任何警告。但是,如果我尝试相同的方法,Firefox 和 IE 都会抱怨证书。

关于为什么会这样的任何想法?我已经检查了该示例站点的源代码,并且看不到有什么特别之处,但是如果我尝试同样的事情,我会发出尖叫声。此外,如果我输入他们正在使用的域 (https://www.paybill.com/cu/),它不会抱怨 - 如果我输入我们的域,它会抱怨。 所有的 SSL 证书都是一样的吗?

归结起来,这可以在没有警告的情况下工作:

<iframe src="https://www.paybill.com/cu/" width="100%" height="600" scrolling="auto"></iframe>  

这不是:

<iframe src="https://www.myclientdomain.com/somepage.php" width="100%" height="600" scrolling="auto"></iframe>

此外,我们使用IFRAME 风格的 Facebook 应用程序通过管道连接到同一个 HTTPS 页面,这样就不会对 SSL 证书产生任何抱怨。啊?!

【问题讨论】:

  • 当您访问 iframe 源 (https://www.example.com/somepage.php) 时,您会收到证书错误吗?可能是证书 CA 未被正确信任。如果您可以提供错误消息,它也可能会有所帮助 - 它是不受信任的 CA、时间已过期、域错误等?
  • 我们想通了,如果您好奇,请在下面发布原因。 /掌脸

标签: iframe ssl cross-domain


【解决方案1】:

经过一番挖掘,我们发现证书是特定于 www.myclientdomain.com 的,而负责的开发人员在IFRAME 中使用了...src="https://myclientdomain.com"...。这导致了以下“连接不受信任”错误屏幕:

主机域的常见做法是永远不要在 URL 中使用“www”(使用 .htaccess 强制执行),而源域(带有证书的域)的标准是始终使用它(使用 .htaccess 强制执行)。 htaccess).这就是导致其他开发人员停止使用它的原因 - 这就是他对自己网站的习惯。

如果一个人甚至为源域单击了一次“我了解风险”并添加了证书例外,那么此后的任何访问都会使其进入 htaccess 并被重定向到 www-,这就是为什么在我的(和另一个开发人员)的计算机页面将正常加载并在 Firebug 中正常检查,而我们的老板收到警告。过去我们都(显然)出于某种原因添加了异常。

当我们把它放在一起时,这是一个真正的面对面的时刻。感谢任何考虑过这个问题的人,很抱歉没有仔细检查细节。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 2011-02-24
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多