2015-05-12 63 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中名列第一,并且必须与证书匹配,最后攻击者必须能够访问证书的私钥才能使用它。如果是这种情况,则无论如何你都会丢失,并应尽快撤销证书。 –

相关问题