MongoDB X509证书连接

时间:2018-11-29 04:59:46

标签: mongodb ssl-certificate

我的Mongo集群有一个X509用户。

  

C = AU,ST = Sydney,O = Test Inc.,OU = management:testUst,CN = testapp.test.com

我为此创建了一个密钥库,并在尝试使用Java应用程序进行连接时收到以下错误。

No verified subject name available from client
  

原因:com.mongodb.MongoCommandException:命令失败,显示以下内容:   错误18:服务器上没有可用的已验证使用者名称   test-host.test.com:20904。完整回复为{   “ operationTime”:{“ $ timestamp”:{“ t”:1543467173,“ i”:1}},   “ ok”:0.0,“ errmsg”:“没有可用的已验证主题名称   客户端”,“代码”:18,“ codeName”:“ AuthenticationFailed”,   “ $ clusterTime”:{“ clusterTime”:{“ $ timestamp”:{“ t”:   1543467173,“ i”:1}},“签名”:{“哈希”:{“ $ binary”:   “ xErnHhtbFM07moBo8x9cV0m4nSY =”,“ $ type”:“ 00”},“ keyId”:{   “ $ numberLong”:“ 6628636371827294209”}}}

不确定这里缺少什么...

1 个答案:

答案 0 :(得分:0)

您需要检查客户端连接上的证书验证的两件事:

  1. 您的连接需要提供客户端证书。
  2. 您的连接需要提供CA证书。

完成提供CA证书的2种方法:

  1. 将其添加到客户端运行的密钥库中
  2. 将其提供给连接(cmdline,python,java,javascript,C#等)

其他说明:

  • 客户端和服务器的CA Cert必须相同。
  • 用户名必须与$ external中的内容匹配。
  • 用户名必须是客户端证书的主题。

我敢肯定还有其他事情,但是这些都是很容易错过的重要事情!祝你好运!