0

我能够使用给定的证书通过 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 而不是来自应用程序,以及我需要进行哪些更改才能从应用程序建立连接。

4

0 回答 0