Docs 菜单

Docs 主页开发应用程序MongoDB Manual

升级集群以使用 TLS/SSL

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

注意

MongoDB 禁用对 TLS 1的支持。在使用 TLS 1的系统上进行0加密。 1 + 可用。

重要

TLS/SSL、PKI(公钥基础设施)证书和证书颁发机构的完整描述已超出本文档的范围。本页假设您已了解 TLS/SSL 并可访问有效证书。

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

注意

本部分中的过程使用tls设置/选项(在 MongoDB 4 . 2中可用)。有关使用其ssl别名的过程,请参阅过程(使用ssl设置)。

由于 MongoDB 始终支持 TLS 1.0 及更高版本,因此 tls 设置/选项可提供与 ssl 选项相同的功能。

  1. 对于集群的每个节点,使用命令行选项 --tlsMode 或配置文件选项 net.tls.mode 将节点设置为 allowTLS。通过 allowTLS 设置,节点可接受 TLS/SSL 和非 TLS/非 SSL 传入连接。它与其他服务器的连接不使用 TLS/SSL。包括其他 TLS/SSL 选项 [2] 以及特定配置所需的任何其他选项。

    注意

    leafygreen-ui-qufvcileafygreen-ui-qufvci,默认绑定到本地主机。如果部署的成员在不同的主机上运行,或者希望远程客户端连接到部署,则必须指定 --bind_ipnet.bindIp

    例如:

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

  2. 将所有客户端切换为使用 TLS/SSL。请参阅客户端的 TLS/SSL 配置

  3. 对于集群的每个节点,使用 setParameter 命令将 tlsMode 更新为 preferTLS[1]preferTLSnet.tls.mode 的情况下,节点接受 TLS/SSL 和非 TLS/non-SSL 传入连接,并且与其他服务器的连接使用 TLS/SSL。例如:

    db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } )

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

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

  4. 对于集群的每个节点,使用 setParameter 命令将 tlsMode 更新到 requireTLS[1]requireTLSnet.tls.mode 的情况下,节点将拒绝任何非 TLS/非 SSL 连接。例如:

    db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } )
  5. 升级所有节点后,使用适当的 TLS/SSL 设置编辑配置文件,以确保在后续重新启动时,集群使用 TLS/SSL。

重要

TLS/SSL、PKI(公钥基础设施)证书和证书颁发机构的完整描述已超出本文档的范围。本页假设您已了解 TLS/SSL 并可访问有效证书。

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

注意

本部分中的过程使用ssl设置/选项。有关使用其tls别名(在 MongoDB 4 . 2中可用)的过程,请参阅过程(使用tls设置)。

由于 MongoDB 始终支持 TLS 1.0 及更高版本,因此 tls 设置/选项可提供与 ssl 选项相同的功能。

  1. 对于集群的每个节点,使用命令行选项 --sslMode 或配置文件选项 net.ssl.mode 将节点设置为 allowSSL。通过 allowSSL 设置,节点可接受 TLS/SSL 和非 TLS/非 SSL 传入连接。它与其他服务器的连接不使用 TLS/SSL。包括其他 TLS/SSL 选项 [2] 以及特定配置所需的任何其他选项。

    注意

    leafygreen-ui-qufvcileafygreen-ui-qufvci,默认绑定到本地主机。如果部署的成员在不同的主机上运行,或者希望远程客户端连接到部署,则必须指定 --bind_ipnet.bindIp

    例如:

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

  2. 将所有客户端切换为使用 TLS/SSL。请参阅客户端的 TLS/SSL 配置

  3. 对于集群的每个节点,使用 setParameter 命令将 sslMode 更新为 preferSSL[1]preferSSLnet.ssl.mode 的情况下,节点接受 TLS/SSL 和非 TLS/non-SSL 传入连接,并且与其他服务器的连接使用 TLS/SSL。例如:

    db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )

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

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

  4. 对于集群的每个节点,使用 setParameter 命令将 sslMode 更新到 requireSSL[1]requireSSLnet.ssl.mode 的情况下,节点将拒绝任何非 TLS/非 SSL 连接。例如:

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )
  5. 升级所有节点后,使用适当的 TLS/SSL 设置编辑配置文件,以确保在后续重新启动时,集群使用 TLS/SSL。

[1]1234 除了使用 setParameter 命令,您还可以使用适当的 TLS/SSL 选项和值重启节点。
[2](1 , 2) 从 MongoDB 4.0 开始,可以使用适用于 Windows 和 macOS 的系统 SSL 证书存储区。要使用系统 SSL 证书存储,请使用:在使用系统 SSL 证书存储区时,会用 OCSP(在线证书状态协议)来验证证书的吊销状态。
← 客户端的 TLS/SSL 配置