Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

为 FIPS 配置 MongoDB

在此页面上

  • Overview
  • 平台支持
  • 配置 FIPS
  • 其他注意事项

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

FIPS 和 TLS/SSL 的完整描述超出了本文档的范围。本教程假定您事先了解 FIPS 和 TLS/SSL。

重要

MongoDB 和 FIPS

FIPS 是加密系统的属性,而不是访问控制系统的属性。但是,如果您的环境需要符合 FIPS 的加密访问控制,则必须确保访问控制系统仅使用符合 FIPS 的加密。

MongoDB 的 FIPS 支持涵盖 MongoDB 使用 SSL/TLS 库进行网络加密、SCRAM 身份验证和 x.509 身份验证的方式。如果使用 Kerberos 或 LDAP 身份验证,则必须确保这些外部机制与 FIPS 兼容。

注意

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

FIPS模式仅适用于 MongoDB Enterprise版。 请参阅安装MongoDB Enterprise以下载和安装MongoDB Enterprise。

以下平台支持 FIPS 模式:

平台
TLS/SSL 库
Linux
OpenSSL
Windows
安全通道 (Schannel)
macOS
安全传输

选择以下适合平台的标签页:

Linux 系统必须有配置 FIPS 140-2 模块的 OpenSSL 库,才能支持 MongoDB 的 FIPS 模式。

  • 通过运行以下命令,验证 OpenSSL 软件是否包含 FIPS 支持:

    openssl version
  • 对于 Red Hat Enterprise Linux 6 .x (RHEL 6 .x) 或其衍生产品,例如CentOS 6 .x,OpenSSL 工具包必须至少为版本 openssl-1.0.1e-16.el6_5才能使用 FIPS模式。 要在这些平台上升级OpenSSL 库,请运行以下命令:

    sudo yum update openssl
  • 某些版本的 Linux 会定期执行一个进程,以预先链接动态库和预分配的地址。此进程会修改 OpenSSL 库,特别是 libcrypto。OpenSSL FIPS 模式随后将无法通过启动时执行以确保 libcrypto 自编译以来未被修改的签名检查。

    要将 Linux prelink 进程配置为无 prelink 的 libcrypto,请运行以下命令:

    sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"

配置好 Linux 系统以支持 FIPS 兼容操作后,请按照以下步骤配置 mongodmongos 实例,使其在 FIPS 模式下运行。

请参阅为 TLS/SSL 配置 mongodmongos,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。

为 TLS/SSL 配置 mongodmongos 后执行这些步骤。

1

要将 mongodmongos 实例配置为使用 FIPS 模式,请关闭实例并使用 net.tls.FIPSMode 设置更新配置文件:

net:
tls:
FIPSMode: true
2

例如,运行此命令可启动 mongod 实例及其配置文件:

mongod --config /etc/mongod.conf

检查服务器日志文件中是否有 FIPS 处于活动状态的消息:

FIPS 140-2 mode activated

Microsoft提供了以下有关为Windows 10和Windows Server 2016或更高版本配置 FIPS模式的资源:

Windows 上的 FIPS140 - 验证2

将Windows系统配置为支持符合 FIPS 标准的操作后,请按照以下步骤将mongodmongos实例配置为在 FIPS模式。

请参阅为 TLS/SSL 配置 mongodmongos,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。

为 TLS/SSL 配置 mongodmongos 后执行这些步骤。

1

要将 mongodmongos 实例配置为使用 FIPS 模式,请关闭实例并使用 net.tls.FIPSMode 设置更新配置文件:

net:
tls:
FIPSMode: true
2

例如,运行此命令可启动 mongod 实例及其配置文件:

mongod.exe --config /etc/mongod.conf

检查服务器日志文件中是否有 FIPS 处于活动状态的消息:

FIPS 140-2 mode activated

默认,受支持的 macOS 版本与 FIPS 兼容。 检查 macOS 版本的文档,验证其合规状态。 示例,Apple 为 macOS 10.14提供了以下资源:

➤ 的 Apple FIPS 加密模块10.14

在 macOS 的兼容版本上,按照以下步骤将mongodmongos实例配置为在 FIPS模式。

请参阅为 TLS/SSL 配置 mongodmongos,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。

为 TLS/SSL 配置 mongodmongos 后执行这些步骤。

1

要将 mongodmongos 实例配置为使用 FIPS 模式,请关闭实例并使用 net.tls.FIPSMode 设置更新配置文件:

net:
tls:
FIPSMode: true
2

例如,运行此命令可启动 mongod 实例及其配置文件:

mongod --config /etc/mongod.conf

检查服务器日志文件中是否有 FIPS 处于活动状态的消息:

FIPS 140-2 mode activated

从版本 4.2 开始,MongoDB 删除了以下程序的--sslFIPSMode选项:

如果mongod /mongosmongos 实例 配置为使用mongod FIPS 模式 ,则程序将使用与 / 的符合 FIPS 的连接。

如果您使用 SCRAM-SHA-1:

以下程序不再支持--sslFIPSMode选项:

如果将 mongodmongos 配置为使用 FIPS 模式,mongodmongos 将使用符合 FIPS 标准的连接。

默认的mongosh发行版:

  • 包含 OpenSSL 3。

  • 如果您将 mongodmongos 配置为使用 FIPS 模式,则使用与 FIPS 兼容的 mongodmongos 连接。

MongoDB 还提供了 MongoDB Shell 发行版,可以使用:

  • 您的服务器上安装了 OpenSSL 1.1 和 OpenSSL 3。

  • --tlsFIPSMode 选项,以启用 mongosh FIPS 模式。

提示

另请参阅:

后退

升级集群