0

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

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

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

mongodbcharts-错误

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

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

有小费吗?

4

2 回答 2

0

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

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

汤姆

于 2020-05-24T22:52:08.420 回答
0

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

我有那个错误...

“因为它是 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
于 2020-05-29T16:01:40.127 回答