2015-05-12 92 views
0

在運行PHP和MongoDB服務器的網站上,用戶應該可以訪問PHP頁面(https),而合作伙伴應該直接訪問MongoDB服務器(通過SSL連接標準的MongoDB端口27017)。是否有可能使用SSL證書(用於網站)來保護MongoDB,因爲它們都運行在同一臺物理機器上?我可以使用相同的SSL證書來保護網絡服務器和mongo服務器

+0

IMO你不應該允許任何訪問實際的數據庫,除了網絡服務器。這就是通過您的Web服務器提供的其餘接口。打開數據庫進行遠程訪問是一個安全漏洞IMO。實際上,數據庫應該位於防火牆後面的獨立機器上,並且不應該可以從網絡訪問,但這有時會過度。 –

回答

0

對於不同的應用程序,不同的應用程序在不同的端口,不同的系統等等,以及所有同時使用相同的證書 - 只要可以驗證證書並通過證書來識別服務器即可。這意味着可以驗證信任鏈(取決於安裝在客戶端上的Root-CA),並且證書與用於訪問系統的名稱相匹配。請注意,不同的應用程序協議在如何檢查名稱方面有不同的規則,特別是關於通配符的使用。

+0

Ahem,這太簡單了。 SSL證書的主要用途不是提供加密功能,而是確定您正在與之通話的主機。使用不同系統的主機證書會導致問題,因爲無法識別主機,更確切地說,證書通用名稱字段將與主機的DNA名稱不匹配。雖然所謂的通配符證書對整個域有效,但不能用於識別單個主機。 –

+0

因此,成功劫持任何* example.com主機的攻擊者可以使用任意名稱將自己標識爲您的域名的一部分,例如「payments.example.com」。因此,將數據發送給未確定的主機(無論是否加密)是一個不好的主意。 –

+0

我試圖讓重要的部分更清晰,但最終我從來沒有說過關於加密的任何內容,只是關於識別部分。不,攻擊者不能以任意名稱來劫持,因爲這個名稱必須在DNS中名列第一,並且必須與證書匹配,最後攻擊者必須能夠訪問證書的私鑰才能使用它。如果是這種情況,則無論如何你都會丟失,並應儘快撤銷證書。 –

相關問題