MongoDB 4.0.8 X.509认证3副本复制集群部署与实战

3 下载量 39 浏览量 更新于2024-08-29 收藏 92KB PDF 举报
本文档详细介绍了如何在MongoDB 4.0.8环境中设置一个基于X.509认证的3副本复制集群。首先,作者列出了集群的三个节点及其角色:mongo-1作为PRIMARY,mongo-2和mongo-3均为SECONDARY。认证过程涉及以下几个关键步骤: 1. **环境准备**: - 确定了每个节点的hostname(如mongo-1, mongo-2, mongo-3)以及它们的IP地址(10.1.1.1, 10.1.1.2, 10.1.1.3)。 - 集群角色明确,包括 PRIMARY 和Secondary。 2. **证书生成**: - 使用OpenSSL工具生成CA(证书颁发机构)证书(ca.pem)和每个数据库服务器的私钥(sbtest-mongo-1.key, sbtest-mongo-2.key)以及对应的CSR(证书签名请求)文件。 - 对证书进行签名,并将生成的证书(sbtest-mongo-1.crt)合并成PEM格式的证书文件(sbtest-mongo-1.pem)。 3. **部署与认证**: - **无认证启动**: 在开始时,未启用SSL认证,便于简单测试。 - **授权**: MongoDB需要授权以管理用户和权限,但文档没有具体列出授权细节。 - **修改配置**: 需要修改mongodb配置文件以启用SSL连接,并指定证书路径。 - **创建复制集**: 完成配置后,创建并配置复制集。 4. **重启与测试**: - 重启MongoDB服务以应用新的配置。 - **SSL连接测试**: - 使用root账户进行测试,确保能通过SSL连接并登录。 - 普通账户登录也需要通过SSL连接验证。 - **数据备份与恢复**: - 提供了错误范例和实际操作,包括数据备份(sbtest-mongo-1.crt, sbtest-mongo-2.crt)和恢复过程。 - **Python驱动测试**:演示如何在Python应用程序中使用SSL连接到MongoDB服务器。 本文档提供了实际操作指南,适合那些希望在生产环境中安全地管理和维护基于X.509认证的MongoDB 4.0.8 3副本复制集群的管理员或开发者。通过这些步骤,读者可以了解如何设置和验证整个过程,包括证书管理、权限控制和数据保护。

项目突然跑不起来报这个错 Exception in monitor thread while connecting to server 10.18.21.79:27117 com.mongodb.MongoSocketReadException: Exception receiving message at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:536) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:421) at com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) at com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) at com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84) at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34) at com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91) at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at com.mongodb.connection.SocketStream.read(SocketStream.java:84) at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418)

2023-06-09 上传