文档数据库 MongoDB 版提供了 SSL(Secure Sockets Layer)加密服务,您可以提前开启 SSL 加密功能,在使用 Mongo Shell 连接数据库时,通过设置 SSL 加密来提高数据链路的安全性。本文介绍如何使用 MongoDB Shell 通过 SSL 加密连接来访问数据库。
MongoDB 4.0:具体安装步骤,请参见 The mongo Shell。
MongoDB 5.0:具体安装步骤,请参见 MongoDB Shell。
通过私网访问 MongoDB 实例相对较安全,一般无需对数据链路加密。使用 SSL 加密连接会增加 MongoDB 实例的 CPU 使用率,建议仅在有加密需求(例如通过公网连接数据库)时启用 SSL 加密。
本文以 Linux 操作系统(安装在 ECS 实例上)为例,介绍使用 SSL 加密功能来连接数据库的详细操作步骤
下载 SSL CA 证书,详情请参见设置 SSL 加密。
将解压后的证书文件上传至安装有 Mongo Shell 的本地服务器或 ECS 实例中。
本文示例中,将 .pem
证书文件上传至 ECS 的 root/mongodbsslca
目录中。
在安装有 Mongo Shell 的本地服务器或 ECS 实例中,执行以下命令连接 MongoDB 数据库。
# 若使用的 Mongo Shell 版本小于 4.2,可以使用如下命令: mongo --host <host> -u <username> -p --authenticationDatabase <database> --ssl --sslCAFile <sslCAFile_path> --sslAllowInvalidHostnames # 若使用的 Mongo Shell 版本大于或等于 4.2,可以使用如下命令: mongo --host <host> -u <username> -p --authenticationDatabase <database> --tls --tlsCAFile <sslCAFile_path> --tlsAllowInvalidHostnames
参数说明
参数 | 说明 | 示例 |
---|---|---|
| 单个节点的连接地址,包括域名和端口号。支持使用如下节点的连接地址:
|
|
| 需要连接的数据库账号。 |
|
| 账号所属的数据库。 说明 当数据库账号为 root 时,对应的数据库必须为 admin。 |
|
<sslCAFile_path> | SSL CA 证书文件的路径。 | /root/mongodbsslca/mongoshellshard.pem |
命令示例。
如下示例中以分片集群实例中某 Mongos 节点的公网地址为例,使用 SSL 加密连接来访问数据库。
mongo --host mongoshard75fef3010****01.mongodb.volces.com:3717 -u root -p --authenticationDatabase admin --tls --tlsCAFile /root/mongodbsslca/mongoshellshard.pem --tlsAllowInvalidHostnames
当命令行提示 Enter password:
时,输入数据库账号对应的密码并按回车键确认即可。
若忘记了 root 账号的密码,您可以在 MongoDB 控制台上重置密码。具体操作步骤,请参见重置密码。