升级群集以使用 TLS/SSL

Important

TLS/SSL,PKI(公钥基础结构)证书和证书颁发机构的完整描述不在本文档的范围之内。该页面假定您具有 TLS/SSL 的先验知识以及对有效证书的访问权限。

MongoDB 服务器支持在同一 TCP 端口上侦听 TLS/SSL 加密和未加密的连接。这允许 MongoDB 集群升级以使用 TLS/SSL 加密的连接。

要从不使用 TLS/SSL 加密的 MongoDB 集群升级到使用 TLS/SSL 加密的集群,请使用以下滚动升级过程:

Note

从 MongoDB 3.6 开始,默认情况下mongodmongos绑定到 localhost。如果部署的成员在不同的主机上运行,或者希望远程 Client 端连接到部署,则必须指定--bind_ipnet.bindIp。有关更多信息,请参见Localhost 绑定兼容性更改

For example:

mongod --replSet <name> --sslMode allowSSL --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> <additional options>

将群集的所有节点升级到这些设置。

您也可以在configuration file中指定这些选项。如果使用YAML 格式配置文件,请在文件中包括以下设置:

net:
   ssl:
      mode: <disabled|allowSSL|preferSSL|requireSSL>
      PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
      CAFile: <path to root CA PEM file>
db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )

将群集的所有节点升级到这些设置。

此时,所有连接都应使用 TLS/SSL。

db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )
[1] *(12)*作为使用setParameter命令的替代方法,您还可以使用适当的 TLS/SSL 选项和值重新启动节点。
首页