如何仅在mongos实例上使用SSL / TLS部署MongoDB分片群集?

时间:2016-09-05 22:02:43

标签: mongodb ssl database-cluster

我有一个MongoDB部署,我们想为外部连接启用SSL,但仅限外部连接。

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

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

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

这些都不利于我们的情况。

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

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

0 个答案:

没有答案