我有一个MongoDB部署,我们想为外部连接启用SSL,但仅限外部连接。
在内部通信中不希望使用SSL有很多原因。它增加了不必要的开销,我们也不希望将内部mongod暴露给互联网 - 他们甚至没有任何理由拥有外部IP。在这种情况下,mongos应该使用SSL进行与客户端的外部通信,而没有SSL用于与mongod的内部通信。
不幸的是,在文档中只讨论了四种简单的SSL模式:
这些都不利于我们的情况。
在我们的情况下,情况更糟,因为我们需要SSL来安全地从Parse.com迁移数据,因此我们需要使用通常受信任的CA(比如letsencrypt)而不是我们自己的自制根CA来创建证书。
那么如何创建一个使用SSL进行外部世界而不是内部的MongoDB部署?我是否需要一个能够进行SSL终止并了解mongodb://协议的反向代理?或者还有其他方式吗?