我正在使用带有以下配置文件的MongoDB v3.0.0:
storage:
dbPath: "/home/vagrant/backend/mongodata"
engine: wiredTiger
systemLog:
destination: file
path: "/home/vagrant/backend/log/mongo.log"
logAppend: true
net:
port: 27017
# Enable the HTTP interface (Defaults to port 28017).
http:
enabled: false
ssl:
mode: requireSSL
PEMKeyFile: /home/vagrant/backend/keys/privKeys.pem
security:
authorization: 'enabled'
但是当我启动它时,我收到以下错误:
Unrecognized option: net.ssl.PEMKeyFile
try '/home/vagrant/backend/mongo/bin/mongod --help' for more information
看起来我的设置与他们在文档中推荐的完全一样:https://docs.mongodb.com/manual/tutorial/configure-ssl/。文档说这是mongo 3.0中的新功能,所以它应该支持这个选项。它确实说某些发行版仍然不支持它(奇怪),所以我应该包括我通过这个安装mongo:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.0.tgz。我能找到的最近的信息是MongoDB下载中心说Linux版本3.0.14“已经启用SSL并动态链接。这需要单独安装SSL库。有关安装OpenSSL的更多信息,请参见此处。”
知道这里可能出现什么问题吗?
答案 0 :(得分:0)
由于MongoDB v3.0.x 大多数 MongoDB发行版包括对SSL的支持,但不是全部。正如您所知,您拥有的分发很可能不支持SSL。
如果您正在开始新的MongoDB部署,我建议您安装最新的稳定版本,目前位于MongoDB v3.4.x,其中包含支持SSL的更多(如果不是全部)发行版。见Release Notes for MongoDB 3.4
答案 1 :(得分:0)
对于我来说,它看起来像是配置中的间距问题,您可能需要检查间距,列表成员ssl成为net之下仅允许两个空格,因此在声明ssl时请确保空格
这是我的工作配置。
net:
port: 28017
bindIp: 127.0.0.1
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb/mongodb-server.pem
CAFile: /etc/ssl/mongodb/mongodb-client.pem
PEMKeyPassword: abc123+
答案 2 :(得分:0)
为我工作过Mongo 4.2.8版:
忽略消息 并检查Mongo日志,我发现为PEM文件配置的路径不正确,应该是标准路径。即使正确配置它,仍然存在此SSL警告,但仍然有效。 干杯(?)
ssl:
mode: requireSSL
PEMKeyFile: /data/users/mongodb/mongodb.pem
PEMKeyPassword: YOUR_PASS