2011-09-08 112 views
5

我有一個客戶端,由於特定的原因,需要在HTTP頁面上放置一個指向HTTPS頁面的IFRAME。 HTTP頁面託管在與HTTPS頁面不同的域和服務器上,但都屬於同一個客戶端。安全IFRAME嵌套在非安全頁面上

暫且不說這個應該沒有完成的原因,我發現很難在實踐中實施。

可以在此頁面看到:http://www.clevelandutilities.com/obppay.htm HTTPS IFRAME在HTTP頁面上沒有任何來自瀏覽器(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頁面,並且THAT沒有關於SSL證書的投訴。咦?

+0

當您訪問iframe源文件('https:// www.example.com/somepage.php')時,您是否收到證書錯誤?可能是證書CA沒有正確信任。如果您可以提供錯誤消息,它可能也有幫助 - 它是不可信的CA,時間過期,域錯誤等? – mjec

+0

我們知道了,如果您好奇,請在下面張貼原因。 /捂臉 –

回答

6

挖一點後,我們發現該證書是特定於WWW .myclientdomain.com,並負責開發者已經在使用IFRAME...src="https://myclientdomain.com"...。這是引起下面的「連接不可信」的錯誤屏幕:

Untrusted error screenshot

主機域名通常的做法是在URL(用的.htaccess執行)從未使用的「www」,而對於標準源域(具有證書的域)始終使用它(使用.htaccess強制執行)。這導致了其他開發者離開了它 - 這是他習慣於他的網站。

如果點擊了「我瞭解風險」,甚至一次爲源域添加了證書異常,之後的任何訪問都會使其進入htaccess並重定向到www-,這就是爲什麼我(和其他開發人員)計算機的頁面將加載罰款和檢查正常在Firebug而我們的老闆得到警告。我們兩個(顯然)在過去因爲某種原因增加了這個例外。

當我們把它放在一起,這是一個真正的facepalm時刻。感謝任何人提出這個問題的想法,抱歉沒有仔細檢查細節。 :)