2

我有一个 MongoDB 部署,我们希望为外部连接启用 SSL,但仅适用于外部连接。

不想在内部通信中使用 SSL 的原因有很多。它增加了不必要的开销,而且我们也不希望将内部 mongod 暴露给互联网——它们甚至没有任何理由拥有外部 IP。在这种情况下,mongos 应该使用 SSL 与客户端进行外部通信,而不使用 SSL 与 mongod 进行内部通信。

不幸的是,在文档中只讨论了四种简单的 SSL 模式:

  • requireSSL :仅对所有通信使用 SSL,包括内部通信。
  • preferSSL :使用 SSL 进行内部通信,但允许来自客户端的非 SSL 流量。这几乎与我们想要的相反。
  • allowSSL :允许使用 SSL,但也允许使用非 SSL
  • 连接。disabled : 没有任何 SSL。

这些都对我们的情况没有帮助。

在我们的例子中情况更糟,因为我们需要 SSL 来安全地从 Parse.com 迁移数据,所以我们需要使用通常受信任的 CA(比如letsencrypt)而不是我们自己的自制根 CA 创建证书。

那么如何创建一个使用 SSL 的 MongoDB 部署外部世界而不是内部世界?我是否需要一个反向代理来终止 SSL 并理解 mongodb:// 协议?还是有其他方法?

4

0 回答 0