使用本地密钥 MONGODB 启用数据加密时出错

2024-02-28

我已成功加密 mongoDB 中的通信,但是当我尝试启用数据加密时出现错误。我使用的是 mongoDB 企业版,版本为 3.2.4。我在控制台中收到以下消息:

ERROR: child process failed, exited with error number 14

但是当我查看日志时,我看到详细的错误如下:

Unable to retrieve key .system, error: there are existing data files, but no valid keystore could be located.
Fatal Assertion 28561

以下是我的配置文件的片段:

# enable authentication
security:
  authorization: enabled
  enableEncryption: true
  encryptionKeyFile: /home/test/mongodb-keyfile

无需enableEncryption, and encryptionKeyFile参数。谁能解释一下我在这里缺少什么?谢谢!


MongoDB 的加密存储引擎支持两种密钥管理选项:

  • 关键经理 https://docs.mongodb.org/manual/tutorial/configure-encryption/#key-manager:通过密钥管理互操作性协议 (KMIP) 与第三方密钥管理设备集成。
  • 本地密钥 https://docs.mongodb.org/manual/tutorial/configure-encryption/#local-key-management:通过密钥文件使用本地密钥管理。

值得一提的是,使用密钥管理器符合监管密钥管理指南,并且受到推崇的超过本地密钥管理。

如果您使用密钥管理器选项,请参阅KMIP 主密钥轮换 https://docs.mongodb.org/manual/tutorial/rotate-encryption-key/#kmip-master-key-rotation.

由于您使用的是本地密钥选项,如果您有副本集部署 https://docs.mongodb.org/manual/core/replication-introduction/你可以轮换副本集成员 https://docs.mongodb.org/manual/tutorial/rotate-encryption-key/#rotate-a-member-of-replica-set。这个会re-sync https://docs.mongodb.org/manual/tutorial/resync-replica-set-member/数据从未加密到加密mongod.

或者,如果您只有独立的mongod, 你可以:

  1. Back Up https://docs.mongodb.org/manual/core/backups/你的数据库文件。
  2. Stop mongod https://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/#stop-mongod-processes过程。
  3. 删除或移动现有数据库文件dbpath。请格外小心! - 如果您要删除,请确保您有备份数据 https://docs.mongodb.org/manual/administration/backup/.
  4. Restart mongod with --启用加密 https://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--enableEncryption and --加密密钥文件 https://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--encryptionKeyFile.
  5. 将备份文件恢复到重启并加密的状态mongod.

As an example,你可以使用蒙戈转储 https://docs.mongodb.org/manual/reference/program/mongodump/转储数据,并使用蒙戈雷商店 https://docs.mongodb.org/manual/reference/program/mongorestore/恢复转储文件。

最后,请注意MongoDB 企业版 https://www.mongodb.com/products/mongodb-enterprise-advanced版本是商业支持的产品。如果您订阅了商业支持,我建议您打开一个支持案例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用本地密钥 MONGODB 启用数据加密时出错 的相关文章

随机推荐

  • 有没有办法确定 Android 应用程序是在运行时进行生产签名还是调试签名?

    有没有办法确定 Android 应用程序是在运行时进行生产签名还是调试签名 private static Boolean isDebugBuild null protected boolean isDebugBuild if isDebug
  • Pip 安装到自定义目标目录并排除特定依赖项

    我正在寻找一种使用 pip 或类似方法将 python 包列表安装到自定义目标目录 例如 mypath python pkgs 的方法 但也排除 黑名单specific依赖关系 我想排除特定的依赖项 因为它们已经从不同的安装路径 例如 an
  • keras的model.fit中tf.Print没有结果

    我写了那个损失 用于测试 keras 中的自定义损失 def loss y true y pred loss tf reduce sum y true tf log y pred loss tf Print loss loss loss r
  • 如何在python中删除文件的部分内容?

    我有一个名为 a txt 的文件 如下所示 我是第一线我是第二线 这里可能还有更多行 我在空行下方 我是一条线更多线路在这里 现在 我想删除空行上方的内容 包括空行本身 我怎样才能以 Pythonic 的方式做到这一点 基本上 您无法从文件
  • 嵌入式 Jetty - 启动 Jetty 服务器后添加上下文

    在没有指定上下文和上下文处理程序的情况下启动jetty实例 然后在服务器启动后继续向其添加上下文是否正确 尽管我能够使用可变的 HandlerCollection 来执行此操作 并且日志显示服务器和上下文已启动且可用 但我无法使用 URL
  • 在设计时隐藏私有子控件属性

    我有一个带有一些私有子控件的容器控件 如何在设计时隐藏属性浏览器以显示控件 它还在设计时在每个控件上显示一个锁和一个方形图标 我尝试为控件设置
  • PHP中HTTP请求完成后执行代码?

    PHP提供了注册关闭函数的机制 register shutdown function shutdown func 问题是在最新版本的 PHP 中 该函数仍然在请求期间执行 我有一个平台 如果重要的话 在 Zend Framework 中 整
  • Ehcache并发修改异常+Spring+Struts应用

    在我的应用程序中 ehcache 配置如下 应用程序数据区域 java import statements public class AppDataRegion Variable for region identifier private
  • Android RSA 加密与 OAEP 使用 SHA-256 进行主摘要和 MGF1 摘要

    根据规范 我需要对两个摘要 主摘要和 MGF1 摘要 使用带有 SHA 256 的 RSA ECB OAEPPadding 密码 安卓密码学 https developer android com guide topics security
  • java try 块的范围应该尽可能严格吗?

    有人告诉我 使用 Java try catch 机制会产生一些开销 因此 虽然有必要将抛出已检查异常的方法放入 try 块中来处理可能的异常 但从性能角度来看 限制 try 块的大小以仅包含那些可能抛出异常的操作是一种很好的做法 我不太确定
  • 在数据库表中存储视图计数

    每次访问数据库记录时存储视图计数的适当且最有效的方法是什么 我有桌子ITEMS包含以下字段 id item name 每个项目都有自己的永久链接 http domain com item name http domain com item
  • CSS 动画属性在动画后保留

    我试图让 CSS 动画属性在完成后保留 这可能吗 这就是我正在努力实现的目标 当用户登陆页面时 该元素应该隐藏 3秒后 或其他时间 它应该淡入 一旦动画完成 它应该停留在那里 这是一个小提琴尝试 http jsfiddle net GZx6
  • SVN将服务器端的数据存储在哪里?

    我已经在我的 Web 主机服务器上创建了一个 svn 存储库 并成功向其中提交文件并更新了文件 但我似乎实际上无法在服务器上找到这些文件 我的 svn 仓库位于 svn my first repo 其中包含以下内容 README txt c
  • 在 Python 中将图像中的颜色映射到颜色列表中最接近的成员

    我有一个 19 种颜色的列表 它是一个大小为 numpy 的数组 19 3 colors np array 0 0 0 0 0 255 255 0 0 150 30 150 255 65 255 150 80 0 170 120 65 12
  • 如何使用 iTextSharp 获取 pdf 文件中的部分目标页码?

    我有一个 pdf 文件 其中包含索引页 其中包含目标页面部分 我可以获得章节名称 第 1 1 节 第 5 2 节 但无法获取目标页码 For ex http www mikesdotnetting com Article 84 iTextS
  • 使用 VB.NET 创建 ODBC DSN

    我想为数据库创建 ODBC DSN 每当用户设置应用程序时 该数据库将包含在我的应用程序文件夹中 我想知道如何使用所有必需的参数创建 ODBC 以便运行安装程序时要做的第一件事是将数据库连接到应用程序 我尝试过使用默认的 VB NET 安装
  • 如何向某些 jQuery 对象添加函数,而不向其他对象添加函数?

    假设我有一个 ul list ul class products ul 我想用 jQuery 选择它 然后向该对象添加一些函数 例如 我想添加一个addProduct productData 函数和一个deleteProduct produ
  • 降低 Bootstrap 3.0 导航栏的高度

    我正在尝试降低与固定顶部行为一起使用的 Bootstrap 3 0 导航栏高度 这里我使用的是代码 HTML div class tnav div class navbar navbar fixed top div class navbar
  • 我应该使用 MySQL blob 字段类型吗?

    我正在努力决定是否应该在即将进行的项目中使用 MySQL blob 字段类型 我的基本要求是 可以查看某些数据库记录 并上传多个文件并将其 附加 到这些记录 根据具体情况 查看所述记录可能仅限于某些人 任何类型的文件都可以上传 几乎没有任何
  • 使用本地密钥 MONGODB 启用数据加密时出错

    我已成功加密 mongoDB 中的通信 但是当我尝试启用数据加密时出现错误 我使用的是 mongoDB 企业版 版本为 3 2 4 我在控制台中收到以下消息 ERROR child process failed exited with er