在 Meteor 中使用 SSL 证书设置 MongoDB
在本指南中,您将学习如何配置Meteor 以使用 SSL 证书连接到MongoDB,从而实现安全通信。我们将逐步介绍如何从Galaxy 数据库下载 SSL 证书,将其放置在您的项目中,以及配置安全 MongoDB 连接的设置。
导航到您在Galaxy 数据库上的 MongoDB概述页面。
找到 SSL 证书下载链接。

在 Meteor 项目的根文件夹内,创建一个名为private的新文件夹。您将在其中存储用于与 MongoDB 进行安全通信的 SSL 证书。
将下载的 SSL 证书文件放入此private文件夹中。在本教程中,我们假设证书名为certificate.pem。

我们还建议将 settings.json 保留在此文件夹中
您需要配置 Meteor 的settings.json文件以正确使用 SSL 证书。以下配置启用 SSL 并指定证书文件。
在 Meteor 项目的根目录中,打开(或创建)settings.json文件。
添加以下配置
- tlsCAFileAsset:此选项指定 SSL 证书位于项目private文件夹内。
- MONGO_URL:这是您的 MongoDB 连接字符串。确保字符串包含ssl=true和authSource=admin以启用 SSL 并针对正确的数据库进行身份验证。
连接到 MongoDB 时,您必须在连接字符串中包含某些参数以确保正确使用 SSL
- 在 MongoDB 连接字符串的末尾添加以下参数
这告诉 MongoDB 使用 SSL 并使用admin数据库进行身份验证。
完成这些步骤后,您的 Meteor 应用程序将通过 SSL 安全地连接到您的 MongoDB 实例。此配置确保应用程序和数据库之间所有数据都经过加密,从而防止潜在的安全威胁。
请务必测试您的连接以验证一切是否已正确设置!这样,您现在就可以将您的应用程序部署到 Galaxy 并检查一切是否正常工作。
步骤 1:从 Galaxy 数据库下载 SSL 证书
导航到您在Galaxy 数据库上的 MongoDB概述页面。
找到 SSL 证书下载链接。

步骤 2:在您的 Meteor 项目中创建private文件夹
在 Meteor 项目的根文件夹内,创建一个名为private的新文件夹。您将在其中存储用于与 MongoDB 进行安全通信的 SSL 证书。
将下载的 SSL 证书文件放入此private文件夹中。在本教程中,我们假设证书名为certificate.pem。

我们还建议将 settings.json 保留在此文件夹中
步骤 3:更新settings.json文件
您需要配置 Meteor 的settings.json文件以正确使用 SSL 证书。以下配置启用 SSL 并指定证书文件。
在 Meteor 项目的根目录中,打开(或创建)settings.json文件。
添加以下配置
{
"packages": {
"mongo": {
"options": {
"tls": true,
"tlsCAFileAsset": "certificate.pem"
}
}
},
"galaxy.meteor.com": {
"env": {
"MONGO_URL": "mongodb://user:pass@todo1.mongodb.galaxy-cloud.io:30020,todo2.mongodb.galaxy-cloud.io:30020,todo2.mongodb.galaxy-cloud.io:30020/simpletasksssl_ssl?replicaSet=todo_app&ssl=true&authSource=admin"
}
}
}
- tlsCAFileAsset:此选项指定 SSL 证书位于项目private文件夹内。
- MONGO_URL:这是您的 MongoDB 连接字符串。确保字符串包含ssl=true和authSource=admin以启用 SSL 并针对正确的数据库进行身份验证。
步骤 4:验证 MongoDB 连接字符串
连接到 MongoDB 时,您必须在连接字符串中包含某些参数以确保正确使用 SSL
- 在 MongoDB 连接字符串的末尾添加以下参数
&ssl=true&authSource=admin
这告诉 MongoDB 使用 SSL 并使用admin数据库进行身份验证。
结论
完成这些步骤后,您的 Meteor 应用程序将通过 SSL 安全地连接到您的 MongoDB 实例。此配置确保应用程序和数据库之间所有数据都经过加密,从而防止潜在的安全威胁。
请务必测试您的连接以验证一切是否已正确设置!这样,您现在就可以将您的应用程序部署到 Galaxy 并检查一切是否正常工作。
meteor deploy appname --settings private/settings.json
更新于:2024年10月9日
谢谢!