2017-05-23 33 views
0

我开始MongoDB的使用下面的命令(我最终会添加到脚本):为什么MongoDB(使用SSL)多次请求.pem密码?

mongod --sslMode requireSSL --sslPEMKeyFile ./certs/myCertAndKey.pem 

之后,蒙戈提示:

输入密码PEM

这是好的,但一旦输入正确的密码,它会再次提问。然后再次。

Mongo要求PEM密码连续五次! 我知道我输入的密码正确,因为如果我只输入一次错误,我会收到失败消息。

这是正常的吗?除了从pem文件中删除密码之外,有没有简化这种方法的方法?

我的最终目标是让我的spring启动应用程序使用SSL启动本地MongoDB,如果它尚未运行,但要求密码5次是荒谬的。

版本信息:

  • MongoDB的外壳版本v3.4.4
  • Git版本:888390515874a9debd1b6c5d36559ca86b44babd
  • OpenSSL的版本:OpenSSL的0.9.8zh 2016年1月14日
  • 分配:系统
  • 模块:无
  • 构建环境:
    • 二淀粉:x86_64的
    • TARGET_ARCH:x86_64的
+0

你有没有尝试指定PEMKeyPassword选项,同时启动mongod的? –

+1

谢谢,我没有尝试过!虽然这确实会阻止mongo多次请求密码,但它也会在终端历史记录中保留私钥的密码。 – Allen

+0

添加它作为进一步参考的答案,将不胜感激,如果你能接受它 –

回答

1

您可能需要通过指定PEMKeyPassword

要开始使用配置文件的mongod禁用密码的promption,您可以使用下面的命令:

mongod --config /etc/mongod.conf 

而且您需要指定在下面的结构PEMKeyPassword

net: 
    port: <int> 
    bindIp: <string> 
    maxIncomingConnections: <int> 
    wireObjectCheck: <boolean> 
    ipv6: <boolean> 
    unixDomainSocket: 
     enabled: <boolean> 
     pathPrefix: <string> 
     filePermissions: <int> 
    http: 
     enabled: <boolean> 
     JSONPEnabled: <boolean> 
     RESTInterfaceEnabled: <boolean> 
    ssl: 
     sslOnNormalPorts: <boolean> # deprecated since 2.6 
     mode: <string> 
     PEMKeyFile: <string> 
     PEMKeyPassword: <string> 
     clusterFile: <string> 
     clusterPassword: <string> 
     CAFile: <string> 
     CRLFile: <string> 
     allowConnectionsWithoutCertificates: <boolean> 
     allowInvalidCertificates: <boolean> 
     allowInvalidHostnames: <boolean> 
     disabledProtocols: <string> 
     FIPSMode: <boolean> 
    compression: 
     compressors: <string> 
+0

这确实阻止它多次要求密码,但是在终端历史记录中留下您的私钥密码不是最佳实践。 我会在接受此答案之前一天提出这个问题,希望能够得到更理想的解决方案。谢谢! – Allen

+0

其实你应该使用一个配置文件来启动mongod实例,以便你的密码不会在终端历史记录中。 –

+0

是的,我要去配置文件。添加到你的答案,我会接受它。 – Allen

相关问题