【问题标题】:Can I use the same SSL certificate to secure web server and mongo server我可以使用相同的 SSL 证书来保护 Web 服务器和 mongo 服务器吗
【发布时间】:2015-05-12 19:40:12
【问题描述】:

在运行 PHP 和 MongoDB 服务器的网站上,用户应有权访问 PHP 页面 (https),​​而合作伙伴应直接访问 MongoDB 服务器(通过标准 MongoDB 端口 27017 上的 SSL 连接)。是否可以使用 SSL 证书(用于网站)来保护 MongoDB,因为它们都运行在同一台物理机器上?

【问题讨论】:

  • IMO 你不应该允许对实际数据库的任何访问,除了 Web 服务器。这就是通过您的 Web 服务器提供的其余接口。让数据库对远程访问开放是 IMO 的一个安全漏洞。确实,数据库应该位于防火墙后面的单独机器上,根本不应该从 Web 访问,但这有时是多余的。

标签: php mongodb ssl


【解决方案1】:

您可以对不同的应用程序、不同端口上的相同应用程序、不同系统等同时使用相同的证书 - 只要证书可以被验证并且服务器由证书标识。这意味着可以验证信任链(取决于安装在客户端上的 Root-CA),并且证书与用于访问系统的名称匹配。请注意,不同的应用程序协议对如何检查名称有不同的规则,尤其是在通配符的使用方面。

【讨论】:

  • 咳咳,过于简单化了。 SSL 证书的主要用途不是提供加密功能,而是明确识别您正在与之交谈的主机。为不同的系统使用主机证书会导致问题,因为无法识别主机,更准确地说,证书通用名称字段将与主机的 DNA 名称不匹配。虽然存在对整个域都有效的所谓通配符证书,但它们不能用于识别单个主机。
  • 因此,成功劫持“example.com”的任何主机的攻击者可以使用任意名称将自己标识为您的域的一部分,例如“payments.example.com” ”。因此,将数据发送到未明确识别的主机(无论是否加密)都是一个坏主意。
  • 我试图让重要的部分更清楚,但最后我从来没有说过任何关于加密的事情,只是关于识别部分。不,攻击者不能随意取一个名字来劫持,因为这个名字在 DNS 中必须是第一个,第二个必须与证书匹配,最后攻击者必须有权访问证书的私钥才能使用它。如果是这种情况,你无论如何都会迷路,应该尽快撤销证书。
  • 说的是通配符证书 ;)
  • @MarkusWMahlberg:即使使用通配符,名称也必须在 DNS 中,并且攻击者必须有权访问证书的私钥。风险不是通配符,风险是在许多主机上拥有相同的私钥,这会增加攻击面,因为它足以破解一个系统。但是,当您有一个大型安装和多个 IP 地址用于同一主机名(通过 DNS 进行负载平衡)时,您会遇到同样的问题。
猜你喜欢
  • 2011-12-12
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 2013-11-01
  • 2019-03-16
  • 1970-01-01
相关资源
最近更新 更多