MongoDB“无法识别的选项:net.ssl.PEMKeyFile”

时间:2017-03-12 02:54:58

标签: mongodb

我正在使用带有以下配置文件的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的更多信息,请参见此处。”

知道这里可能出现什么问题吗?

3 个答案:

答案 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