我能够使用给定的证书通过 ycqlsh 连接到 yugabyte cassandra 实例。
ycqlsh <host> --ssl
已导出环境变量 SSL_CERTFILE。这可行,但是从传递相同证书的 golang 应用程序给我一个错误。
func getYugaByteConnection() *gocql.Session {
cluster := gocql.NewCluster("<host>")
cluster.Timeout = 12 * time.Second
//cluster.ConnectTimeout = 12 * time.Second
cluster.SslOpts = &gocql.SslOptions{
EnableHostVerification: true,
CertPath: "path/to/cert.pem",
}
session, err := cluster.CreateSession()
if err != nil {
log.Println(err)
}
return session
}
这给了我一个错误说
gocql: unable to create session: connectionpool: unable to load X509 key pair: open : no such file or directory
有人可以解释为什么它适用于 ycqlsh 而不是来自应用程序,以及我需要进行哪些更改才能从应用程序建立连接。