参考 > 安全 > TLS / SSL(传输加密) > 升级群集以使用TLS / SSL
MongoDB服务器支持在同一TCP端口上侦听TLS / SSL加密和未加密的连接。这允许MongoDB集群升级以使用TLS / SSL加密的连接。
注意
从版本4.0开始,MongoDB在可用TLS 1.1+的系统上禁用对TLS 1.0加密的支持。有关更多详细信息,请参阅禁用TLS 1.0。
tls
设置)¶重要
TLS / SSL,PKI(公钥基础结构)证书和证书颁发机构的完整描述不在本文档的范围之内。该页面假定您具有TLS / SSL的先验知识以及对有效证书的访问权限。
要从不使用TLS / SSL加密的MongoDB集群升级到仅使用TLS / SSL加密的集群,请使用以下滚动升级过程。
注意
本节中的过程使用tls
设置/选项(在MongoDB 4.2中可用)。有关使用ssl
别名的过程,请参见过程(使用ssl设置)。
的tls
设置/选项提供了相同的功能性ssl
选项,因为MongoDB中始终支持TLS 1.0和更高。
对于群集的每个节点,请通过将命令行选项--tlsMode
或配置文件选项net.tls.mode
设置为来启动该节点
allowTLS
。该allowTLS
设置允许节点接受TLS / SSL和非TLS /非SSL传入连接。它与其他服务器的连接不使用TLS / SSL。包括其他TLS / SSL选项 [2]以及您的特定配置所需的任何其他选项。
注意
开始在MongoDB中3.6,mongod
并mongos
绑定默认为localhost。如果部署的成员在不同的主机上运行,或者希望远程客户端连接到部署,则必须指定--bind_ip
或
net.bindIp
。有关更多信息,请参见
Localhost绑定兼容性更改。
例如:
将群集的所有节点升级到这些设置。
切换所有客户端以使用TLS / SSL。请参阅客户端的TLS / SSL配置。
对于集群的每个节点,使用setParameter
命令将更新tlsMode
为preferTLS
。
[1]利用preferTLS
作为其
net.tls.mode
中,节点可同时接收TLS / SSL和非TLS /非SSL传入连接,以及它与其他服务器的连接使用TLS / SSL。例如:
将群集的所有节点升级到这些设置。
此时,所有连接都应使用TLS / SSL。
对于集群的每个节点,使用
setParameter
命令将tlsMode
升级到requireTLS
。[1]利用requireTLS
作为其net.tls.mode
,该节点将拒绝任何非TLS /非SSL连接。例如:
升级所有节点后,请使用适当的TLS / SSL设置编辑配置文件,以确保在后续重新启动时,群集使用TLS / SSL。
ssl
设置)¶重要
TLS / SSL,PKI(公钥基础结构)证书和证书颁发机构的完整描述不在本文档的范围之内。该页面假定您具有TLS / SSL的先验知识以及对有效证书的访问权限。
要从不使用TLS / SSL加密的MongoDB集群升级到仅使用TLS / SSL加密的集群,请使用以下滚动升级过程。
注意
本节中的过程使用ssl
设置/选项。有关使用其tls
别名的过程(在MongoDB 4.2中可用),请参阅过程(使用tls设置)。
的tls
设置/选项提供了相同的功能性ssl
选项,因为MongoDB中始终支持TLS 1.0和更高。
对于群集的每个节点,请通过将命令行选项--sslMode
或配置文件选项net.ssl.mode
设置为来启动该节点
allowSSL
。该allowSSL
设置允许节点接受TLS / SSL和非TLS /非SSL传入连接。它与其他服务器的连接不使用TLS / SSL。包括其他TLS / SSL选项 [2]以及您的特定配置所需的任何其他选项。
注意
开始在MongoDB中3.6,mongod
并mongos
绑定默认为localhost。如果部署的成员在不同的主机上运行,或者希望远程客户端连接到部署,则必须指定--bind_ip
或
net.bindIp
。有关更多信息,请参见
Localhost绑定兼容性更改。
例如:
将群集的所有节点升级到这些设置。
切换所有客户端以使用TLS / SSL。请参阅客户端的TLS / SSL配置。
对于集群的每个节点,使用setParameter
命令将更新sslMode
为preferSSL
。
[1]利用preferSSL
作为其
net.ssl.mode
中,节点可同时接收TLS / SSL和非TLS /非SSL传入连接,以及它与其他服务器的连接使用TLS / SSL。例如:
将群集的所有节点升级到这些设置。
此时,所有连接都应使用TLS / SSL。
对于集群的每个节点,使用
setParameter
命令将sslMode
升级到requireSSL
。[1]利用requireSSL
作为其net.ssl.mode
,该节点将拒绝任何非TLS /非SSL连接。例如:
升级所有节点后,请使用适当的TLS / SSL设置编辑配置文件,以确保在后续重新启动时,群集使用TLS / SSL。
[1] | (1,2,3,4)作为一种替代使用
setParameter 命令,还可以重新启动与适当的TLS / SSL选项和值的节点。 |
[2] | (1,2) 从MongoDB 4.0开始,您可以为Windows和macOS使用系统SSL证书存储。要使用系统SSL证书存储,请使用:
使用系统SSL证书库时,OCSP(在线证书状态协议)用于验证证书的吊销状态。 |