mongodb - Mongo go驱动程序-在连接启用ssl和加密密钥时出现密钥不匹配错误
问题描述
尝试从 golang 应用程序 kubernetes pod 连接到 mongodb 服务器时出现以下错误。
错误:tls:私钥与公钥不匹配
我正在使用 mongo-go-driver 版本 1.4.1
密钥是 RSA 加密的。-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: ..
要连接的 PFB 应用程序代码
m.context, _ = context.WithTimeout(context.Background(), 30*time.Second)
certFilePath := <path>
keyPassword := <password>
uri := "mongodb://user:password@<mongoserver>:27017/?authSource=<dbname>&authMechanism=scram-sha-1&connect=direct&ssl=true&sslClientCertificateKeyFile=%s&sslClientCertificateKeyPassword=%s&sslInsecure=true&sslAllowInvalidCertificates=true"
uri = fmt.Sprintf(uri, certFilePath, keyPassword)
log.Println("ConnectDB: creating mongo client new")
clientOptions := []*options.ClientOptions{
options.Client().ApplyURI(uri),//.SetAuth(credential),
}
log.Println("ConnectDB: connecting client")
m.client, err = mongo.Connect(m.context, clientOptions...)
if nil != err {
panic(err)
}
使用 Robo 3T 或 Studio 3T 连接时,相同的密钥和证书工作正常
请帮助我解决密钥不匹配错误。是否由于 golang 驱动程序的密钥解密不正确而发生?
解决方案
推荐阅读
- jmeter - 大数据传输期间的 Jmeter 分布式测试内存优化
- linux - Linux:使用 lsyncd 同步多个服务器上的多个文件夹
- javafx - Javafx 检测文本字段更改并确定插入符号位置
- webpack - 将引导程序添加到 webpack。为什么第二种方法不起作用
- android - 用户是否需要登录才能使用应用内购买功能?
- typo3 - TYPO3 9:启用站点配置后,导航中显示禁用页面
- javascript - 在 Vue 过滤器内的 HTML 之间换行
- ios - 为什么总是初始化 19 个单元格?
- php - 如何获取网站的最后更新日期?
- javascript - String.fromCharCode() 只有 JS 标准函数?