要将当前正在使用密钥文件身份验证的群集升级到x.509身份验证,请使用以下滚动升级过程。
注意
从版本4.0开始,MongoDB在可用TLS 1.1+的系统上禁用对TLS 1.0加密的支持。有关更多详细信息,请参阅禁用TLS 1.0。
tls
选项)¶注意
从4.2版开始,MongoDB提供与net.tls
设置(及其相应的--tls
命令行选项)相对应的net.ssl
设置(以及相应的--ssl
命令行选项)。新的tls
设置/选项提供与设置/选项
相同的功能,ssl
因为MongoDB始终支持TLS 1.0和更高版本。
本节中的过程使用tls
设置/选项。有关使用ssl
设置/选项的过程,请参阅升级过程(使用ssl选项)。
tls
使用TLS / SSL和密钥文件升级(使用选项)群集¶注意
该过程使用tls
设置/选项。有关使用ssl
设置/选项的过程,请参阅
当前使用TLS / SSL的群集(使用ssl选项)。
对于使用TLS / SSL和密钥文件身份验证的群集,要升级到x.509群集身份验证,请使用以下滚动升级过程:
对于群集的每个成员,将以下设置添加到 配置文件并重新启动:
security.clusterAuthMode
sendKeyFile
。使用此设置值,每个节点将继续发送其密钥文件以将其自身认证为成员。但是,每个节点都可以从其他成员接收密钥文件或x.509证书,以对那些成员进行身份验证。net.tls.clusterFile
mongod
/ mongos
礼物此文件到集群中的其他成员自己标识为一个构件。包括其他TLS / SSL选项以及适合您的特定配置的任何其他选项。
例如:
在继续之前,更新集群的所有节点以包括
security.clusterAuthMode
和
net.tls.clusterFile
设置。
连接到每个节点并使用
setParameter
命令将其更新clusterAuthMode
为sendX509
。[1]
使用sendX509
,每个节点都发送其
net.tls.clusterFile
以认证自己为成员。但是,每个节点都可以从其他成员接收密钥文件或x.509证书,以对那些成员进行身份验证。
在继续之前,将群集的所有节点升级到此设置。
可选,但推荐。最后,对于群集的每个节点,连接到该节点并使用setParameter
命令将clusterAuthMode
升级x509
到,以仅使用x.509证书进行身份验证。[1]
升级所有节点后,请使用适当的x.509设置编辑配置文件,以确保在后续重新启动时,群集使用x.509身份验证。例如:
也可以看看
您还可以配置mongod
和
mongos
使用命令行选项而不是配置文件:
mongod
,请参阅: - --tlsMode
- --tlsCertificateKeyFile
- --tlsCAFile
- --tlsClusterFile
---clusterAuthMode
mongos
,请参阅: - --tlsMode
- --tlsCertificateKeyFile
- --tlsCAFile
- --tlsClusterFile
---clusterAuthMode
tls
使用密钥文件而不是TLS / SSL 更新(使用选项)群集¶注意
该过程使用tls
选项。有关使用
ssl
设置/选项的过程,请参阅当前未使用TLS / SSL的群集(使用ssl选项)。
对于使用密钥文件身份验证但不使用TLS / SSL的群集,要升级到x.509成员身份验证和TLS / SSL连接,请执行以下操作:
对于群集的每个成员,将以下设置添加到 配置文件并重新启动:
net.tls.mode
allowTLS
。此值允许节点接受TLS / SSL和非TLS /非SSL传入连接。它的传出连接不使用TLS / SSL。net.tls.certificateKeyFile
mongod
/ mongos
礼物这个文件到它的客户建立了实例的身份。使用TLS / SSL时必需。net.tls.clusterFile
mongod
/ mongos
礼物此文件到集群中的其他成员自己标识为一个构件。net.tls.CAFile
security.clusterAuthMode
sendKeyFile
。这允许每个节点继续发送其密钥文件以将其自身认证为成员。但是,每个节点都可以从其他成员接收密钥文件或x.509证书,以对那些成员进行身份验证。包括其他TLS / SSL选项以及适合您的特定配置的任何其他选项。
例如:
升级集群中的所有节点,包括net.tls.mode
,
net.tls.certificateKeyFile
,
net.tls.clusterFile
,和
security.clusterAuthMode
。
连接到每个节点并使用
setParameter
命令[1]执行以下操作:
tlsMode
到preferSSL
。与tlsMode
设置为
preferTLS
,节点可同时接收TLS / SSL和非TLS /非SSL传入连接,其传出连接使用TLS / SSL。clusterAuthMode
到sendX509
。将clusterAuthMode
设置为sendX509
,每个节点将发送其net.tls.clusterFile
以将其自身认证为成员。但是,每个节点继续接受来自其他成员的密钥文件或x.509证书以对那些成员进行身份验证。在继续之前,请将群集的所有节点升级到这些设置。
升级所有节点后,请使用适当的TLS / SSL和x.509设置编辑配置文件,以确保在后续重新启动时,群集使用x.509身份验证。
注意
在此刻,
要从客户端应用程序强制执行TLS / SSL连接,并且仅接受x.509进行成员身份验证,请参阅下一步。
可选,但推荐。更新所有节点以仅TLS/SSL
将连接和仅x.509证书用于成员身份验证。
重要
TLS / SSL连接要求适用于所有连接。也就是说,与客户端以及群集成员一起。也就是说,客户端必须指定TLS / SSL连接,并在连接到群集时出示其证书密钥文件。请参阅连接到需要客户端证书的MongoDB实例(tls选项)以获取有关使用TLS / SSL连接的更多信息。另请参见 仅在客户出示证书时验证。
net.tls.mode
将requireTLS
和
更新security.clusterAuthMode
到x509
。
例如:
也可以看看
您还可以配置mongod
和
mongos
使用命令行选项而不是配置文件:
mongod
,请参阅: - --tlsMode
- --tlsCertificateKeyFile
- --tlsCAFile
- --tlsClusterFile
---clusterAuthMode
mongos
,请参阅: - --tlsMode
- --tlsCertificateKeyFile
- --tlsCAFile
- --tlsClusterFile
---clusterAuthMode
ssl
选项)¶注意
从4.2版开始,MongoDB提供与net.tls
设置(及其相应的命令行选项)相对应的
net.ssl
设置(以及相应的命令行选项)。的tls
设置/选项提供了相同的功能ssl
的设置/自MongoDB的选项始终支持TLS 1.0和更高。
本节中的过程使用ssl
选项。有关使用tls
选项的过程,请参阅
升级过程(使用tls选项)。
ssl
选项)¶注意
该过程使用ssl
选项。有关使用tls
选项的过程
(可从MongoDB 4.2开始使用),请参阅
当前使用TLS / SSL的集群(使用ssl选项)。
对于使用TLS / SSL和密钥文件身份验证的群集,要升级到x.509群集身份验证,请使用以下滚动升级过程:
对于群集中的每个节点,请在选项
--clusterAuthMode
设置为sendKeyFile
且选项
--sslClusterFile
设置为节点证书的相应路径的情况下启动节点。包括其他TLS / SSL选项以及您的特定配置所需的任何其他选项。例如:
使用此设置,每个节点将继续使用其密钥文件来将自己认证为成员。但是,每个节点现在都可以接受来自其他成员的密钥文件或x.509证书以对那些成员进行身份验证。将群集的所有节点升级到此设置。
然后,对于集群中的每个节点,连接到该节点并使用
setParameter
命令将其更新clusterAuthMode
为sendX509
。[1]例如,
使用此设置,每个节点都将使用--sslClusterFile
在上一步中使用该选项指定的x.509证书来将自己认证为成员。但是,每个节点继续接受来自其他成员的密钥文件或x.509证书以对那些成员进行身份验证。将群集的所有节点升级到此设置。
可选,但推荐。最后,对于群集的每个节点,连接到该节点并使用setParameter
命令将clusterAuthMode
升级x509
到,以仅使用x.509证书进行身份验证。[1]
例如:
升级所有节点后,请使用适当的x.509设置编辑配置文件,以确保在后续重新启动时,群集使用x.509身份验证。
有关--clusterAuthMode
各种模式及其说明,请参见。
ssl
选项)¶注意
该过程使用ssl
选项。有关使用tls
选项的过程
(可从MongoDB 4.2开始使用),请参阅
使用密钥文件而不是TLS / SSL更新(使用tls选项)群集。
对于使用密钥文件身份验证而非TLS / SSL的群集,要升级到x.509身份验证,请使用以下滚动升级过程:
对于集群中的每个节点,使用选项
--sslMode
设置为allowSSL
,选项
--clusterAuthMode
设置为sendKeyFile
,选项
--sslClusterFile
设置为节点证书的相应路径来启动节点。包括其他TLS / SSL选项以及您的特定配置所需的任何其他选项。例如:
该设置允许节点接受TLS / SSL和非TLS /非SSL传入连接。它的传出连接不使用TLS / SSL。--sslMode allowSSL
该
设置允许每个节点继续使用其密钥文件来将自己认证为成员。但是,每个节点现在都可以接受来自其他成员的密钥文件或x.509证书以对那些成员进行身份验证。--clusterAuthMode sendKeyFile
将群集的所有节点升级到这些设置。
然后,对于集群的每个节点,连接到该节点并使用
setParameter
命令更新sslMode
to preferSSL
和clusterAuthMode
to
sendX509
。[1]例如:
与sslMode
设置为preferSSL
,节点可同时接收TLS / SSL和非TLS /非SSL传入连接,其传出连接使用TLS / SSL。
将clusterAuthMode
设置sendX509
为时,每个节点将使用--sslClusterFile
在上一步中使用选项指定的x.509证书
来将自己认证为成员。但是,每个节点继续接受来自其他成员的密钥文件或x.509证书以对那些成员进行身份验证。
将群集的所有节点升级到这些设置。
可选,但推荐。最后,对于集群中的每个节点,连接到该节点并使用setParameter
命令更新sslMode
to requireSSL
和
clusterAuthMode
to x509
。[1]
例如:
与sslMode
设置为requireSSL
,所述节点仅使用TLS / SSLS连接。
随着clusterAuthMode
集到x509
的节点只用于认证的X.509证书。
升级所有节点后,请使用适当的TLS / SSL和x.509设置编辑配置文件,以确保在后续重新启动时,群集使用x.509身份验证。
有关--clusterAuthMode
各种模式及其说明,请参见。
[1] | (1,2,3,4,5,6,7)作为替代使用
setParameter 命令,还可以重新启动与适当的TLS的节点/ SSL和X509选项和值。 |