Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅在mongos实例上部署带有SSL/TLS的MongoDB分片集群?_Mongodb_Ssl_Database Cluster - Fatal编程技术网

如何仅在mongos实例上部署带有SSL/TLS的MongoDB分片集群?

如何仅在mongos实例上部署带有SSL/TLS的MongoDB分片集群?,mongodb,ssl,database-cluster,Mongodb,Ssl,Database Cluster,我有一个MongoDB部署,我们希望为外部连接启用SSL,但仅为外部连接启用SSL 在内部通信中不需要SSL有很多原因。它增加了不必要的开销,我们也不想将内部mongod暴露在互联网上——它们甚至没有理由拥有外部IP。在这种情况下,mongos应使用SSL与客户端进行外部通信,而不使用SSL与mongod进行内部通信 不幸的是,文档中只讨论了四种简单的SSL模式: requireSSL:仅对所有通信(包括内部通信)使用SSL preferSSL:使用SSL进行内部通信,但允许来自客户端的非SS

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

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

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

  • requireSSL:仅对所有通信(包括内部通信)使用SSL
  • preferSSL:使用SSL进行内部通信,但允许来自客户端的非SSL通信。这与我们想要的恰恰相反
  • allowSSL:允许使用SSL,但也允许使用非SSL
  • 联系。禁用:没有任何SSL
这两者都无助于我们的处境

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

那么,我如何创建一个MongoDB部署,它在外部世界使用SSL,但在内部不使用SSL?我是否需要一个执行SSL终止并理解mongodb://协议的反向代理?还是有别的办法