安全IFRAME嵌套在非安全页面上

时间:2011-09-08 21:28:48

标签: iframe ssl cross-domain

我有一个客户端,由于特定原因,需要在HTTP页面上放置IFRAME指向HTTPS页面。 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证书的投诉。咦?!

1 个答案:

答案 0 :(得分:6)

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

Untrusted error screenshot

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

如果有人点击“我理解风险”,即使对源域一次并添加了证书例外,之后的任何访问都会进入htaccess并被重定向到www-,这就是我(和其他人)的原因开发人员的计算机页面加载正常,并在我们的老板收到警告时在Firebug中检查正常。我们(显然)过去曾因某种原因添加了例外情况。

当我们把它放在一起时,这是一个真正的facepalm时刻。感谢任何提出这个问题的人,很遗憾没有仔细检查细节。 :)