对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

TLS/SSL(传输加密)

MongoDB 支持使用 TLS/SSL(传输层安全性/安全套接层)加密 MongoDB 的所有网络流量。TLS/SSL 可确保 MongoDB 网络流量只能由目标客户端读取。

从 MongoDB 7.0 和 6.0.7 开始,MongoDB 支持在以下操作系统上使用 OpenSSL 3.0 和 OpenSSL FIPS 提供程序:

  • Red Hat Enterprise Linux 9

  • Amazon Linux 2023

  • Ubuntu Linux 22.04

从 MongoDB 8.0 开始,MongoDB 支持 OpenSSL 3.0 和适用于 Amazon Linux 2023.3 的 OpenSSL FIPS 提供程序。

要将部署配置为使用 TLS,请遵循快速入门指南。

MongoDB 在支持 TLS 1.1+ 的系统上禁用对 TLS 1.0 加密的支持。

MongoDB 使用原生 TLS / SSL OS 库:

平台
TLS/SSL 库

Windows

安全通道 (Schannel)

Linux/BSD

OpenSSL

macOS

安全传输

对于所有连接, MongoDB 的 TLS/SSL 加密仅允许使用强 TLS/SSL 密码,且密钥长度至少为 128 位。

前向安全密码套件将创建一个临时会话密钥,该密钥受服务器的私钥保护,但永远不会被传输。使用临时密钥可确保即使服务器的私钥已遭泄露,您仍然无法使用泄露的密钥解密过去的会话。

MongoDB 支持使用 Ephemeral Diffie-Hellman (DHE) 和 Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) 算法的前向安全密码套件。

平台
支持级别

Linux

如果 Linux 平台的 OpenSSL 支持自动曲线选择,则 MongoDB 可以提供对 Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) 的支持。

否则,如果 Linux 平台的 OpenSSL 不支持自动曲线选择,MongoDB 会尝试使用 prime256v1 作为命名的曲线来启用 ECDHE 支持。

Windows

通过使用安全通道 (Schannel)(即原生 Windows TLS/SSL 库)隐式支持 Ephemeral Elliptic Curve Diffie-Hellman (ECDHE)。

macOS

通过使用安全传输(即原生 macOS TLS/SSL 库)隐式支持 Ephemeral Elliptic Curve Diffie-Hellman (ECDHE)。

ECDHE cipher suites are slower than static RSA cipher suites. For better performance with ECDHE, you can use certificates that use Elliptic Curve Digital Signature Algorithm (ECDSA). See also Forward Secrecy Performance for more information.

平台
支持级别

Linux

MongoDB 提供对 Ephemeral Diffie-Hellman (DHE) 的支持:

Windows

通过使用安全通道 (Schannel)(即原生 Windows TLS/SSL 库)隐式支持 Ephemeral Diffie-Hellman (DHE)。

macOS

通过使用安全传输(即原生 macOS TLS/SSL 库)隐式支持Ephemeral Diffie-Hellman (DHE)。

注意

如果客户端协商使用带有 DHE 的密码套件,却不能接受服务器选择的参数,那么 TLS 连接将失败。

除非从 Oracle 购买了扩展支持,否则 Java 6 和 7 不支持强参数(即参数位数大于 1024)。但是,Java 7 支持并优先选择使用 ECDHE,因此如果 ECDHE 可用,将协商使用 ECDHE。

DHE(和 ECDHE)密码套件的性能优于静态 RSA 密码套件,其中 DHE 明显优于 ECDHE。有关更多信息,请参阅前向保密性能

DHE(和 ECDHE)密码套件的加解密速度比静态 RSA 密码套件慢,其中 DHE 的速度明显慢于 ECDHE。

为了提高 ECDHE 的性能,可以使用采用椭圆曲线数字签名算法 (ECDSA) 的证书。或者,可以使用 opensslCipherConfig 参数禁用 ECDHE 密码套件,如以下示例所示(这也会禁用 DHE):

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!kECDHE:!ECDHE:!DHE:!kDHE@STRENGTH'

如果由于性能原因需要禁用对 DHE 密码套件的支持,可以使用 opensslCipherConfig 参数,如以下示例所示:

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH'

要将 TLS 与 MongoDB 一起使用,必须具有 TLS 证书。请参阅 获取 TLS 服务器证书。

如果显示的 x.509 证书在 mongod/mongos 主机系统时间后的 30 天内过期,则 mongod / mongos 会在连接时记录警告。

从 MongoDB 6.0 开始,如果在初始同步期间将 ocspEnabled 设置为 true,则所有节点必须都能够到达 OCSP 响应器。

如果成员在 STARTUP2 状态下发生故障,则将 tlsOCSPVerifyTimeoutSecs 设置为小于 5 的值。

为了检查证书吊销,MongoDB enables 默认使用 OCSP(在线证书状态协议)。使用 OCSP 后,无需定期下载 Certificate Revocation List (CRL) 并使用已更新 CRL 重新启动 mongod / mongos

注意

Let's Encrypt OCSP 已弃用

Let's Encrypt has ended OCSP support for newer certificates. New certificates issued by Let's Encrypt might not include an OCSP responder URL. OCSP revocation checking occurs only when a certificate contains an OCSP URI, so a missing OCSP URL is expected and doesn't necessarily indicate a problem with your MongoDB deployment.

作为 OSCP 支持的一部分,MongoDB 在 Linux 上支持以下功能:

  • OCSP stapling. With OCSP stapling, mongod and mongos instances attach or "staple" the OCSP status response to their certificates when providing these certificates to clients during the TLS/SSL handshake. OCSP stapling removes the need for clients to make a separate request to retrieve the OCSP status of the provided certificate. The OCSP status response is included with the certificates.

  • OCSP 必备装订扩展。OCSP 必备装订是一个可以添加到服务器证书的扩展,用于指示客户端在 TLS/SSL 握手期间接收证书时需要 OCSP 装订。

MongoDB 还提供以下 OCSP 相关参数:

Parameter
说明

启用或禁用 OCSP 支持。

指定在刷新装订的 OCSP 状态响应之前等待的秒数。

指定 mongod / mongos 实例在接收其证书的 OCSP 状态响应时应等待的最大秒数。

指定 mongod / mongos 在客户端证书验证时应等待 OCSP 响应的最大秒数。

您可以使用 setParameter 配置文件设置或 --setParameter 命令行选项在启动时设置这些参数。

注意

从 MongoDB 5.0 开始,rotateCertificates 命令和 db.rotateCertificates() 方法也会刷新任何已装订 OCSP 响应。

注意

Enterprise 版功能

仅在 MongoDB Enterprise 中可用。

联邦信息处理标准 (FIPS) 是美国政府的计算机安全标准,用于认证安全加密和解密数据的软件模块和库。您可以配置 MongoDB ,使其使用经 FIPS 140-2 认证的 OpenSSL 库运行。您可以将 FIPS 配置为默认运行或根据需要从命令行运行。

有关示例,请参阅为 FIPS 配置 MongoDB。

给本页内容打分