【问题标题】:mongodb-charts ssl data source PRIVATE KEY errormongodb-charts ssl 数据源 PRIVATE KEY 错误
【发布时间】:2020-05-19 19:31:31
【问题描述】:

我正在尝试连接到受 SSL 保护的 Mongo 数据库实例,该实例运行来自本地 MongoDB 图表部署的服务。我有一个本地 Mongo 作为元数据数据库运行,MongoDB-charts 从本地容器运行,遵循以下说明:

https://docs.mongodb.com/charts/19.12/installation/

但是,当我想连接到运行服务并使用证书受 SSL 保护的 Mongo 数据库实例时,我收到以下错误:

我已在容器中复制了证书。我知道它正在被拾取,因为如果我重命名文件名,MongoDB-charts 会抱怨证书文件不存在。

我能够从 Mongo shell 和 MongoDB-compass 使用相同的凭据和证书连接到 MongoDB 服务,因此该信息是正确的。我认为它必须是容器上缺少的东西,但我找不到解决方案。

¿任何提示?

【问题讨论】:

  • 您使用的 URI 是什么?看不到。
  • mongodb://user:password@host0,host2/dbname?authSource=admin&replicaSet=replset?ssl=true&sslclientcertificatekeyfile=/mongodb-charts/volumes/db-certs/cert.pem
  • sslclientcertificatekeyfile 不是标准化的 uri 选项名称,它从何而来?
  • 我明白了。错误的文本是什么?

标签: mongodb mongodb-charts


【解决方案1】:

Charts 使用 Go 驱动程序 - 您可以在 https://github.com/mongodb/mongo-go-driver/blob/master/mongo/options/clientoptions.go 看到产生该错误的代码。

由于您使用的是 SSL 客户端证书,因此需要在 PEM 文件中找到私钥。你有吗? PEM 文件可能只包含一个公钥,或者一个公钥 + 一个私钥。该错误意味着您的文件仅包含公钥。

汤姆

【讨论】:

  • 我会调查的。值得一提的是,我使用相同的 PEM 通过 mongo shell、mongodb compass 和 moongose 进行连接。奇怪的是,该文件应该被修改为与图表一起使用。无论如何我会检查它,感谢您的反馈。
【解决方案2】:

我在公司内部论坛中获得了解决方案。

我有那个错误...

“因为它是 CA 文件,而不是密钥文件 - 使用您的选项 选择,它正在寻找证书和密钥”

解决方案:在 Mongo URI 中使用 tlsCAFile 而不是 sslclientcertificatekeyfile
示例:

mongodb://user:password@host0,host2/dbname?authSource=admin&replicaSet=replset&ssl=true&sslclientcertificatekeyfile=/mongodb-charts/volumes/db-certs/cert.pem

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2013-11-13
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2022-11-10
    相关资源
    最近更新 更多