【发布时间】:2023-03-27 13:13:01
【问题描述】:
我有一个在 AWS 上运行的 RDS 实例,我想知道如何通过 ssl 连接到该实例。
从此链接Using SSL with mysql database。 AWS 设置我们的数据库,并使用证书注册并提供根证书以供下载。 AWS rds root ca
现在 go-mysql-driver 在文档中提供此信息以设置 ssl 连接。
rootCertPool := x509.NewCertPool()
pem, err := ioutil.ReadFile("/path/ca-cert.pem")
if err != nil {
log.Fatal(err)
}
if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
log.Fatal("Failed to append PEM.")
}
clientCert := make([]tls.Certificate, 0, 1)
certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client- key.pem")
if err != nil {
log.Fatal(err)
}
clientCert = append(clientCert, certs)
mysql.RegisterTLSConfig("custom", &tls.Config{
RootCAs: rootCertPool,
Certificates: clientCert,
})
db, err := sql.Open("mysql", "user@tcp(localhost:3306)/test?tls=custom")
该示例表明我需要一个客户端证书和客户端密钥。
但亚马逊只提供根证书。如何使用 go-mysql-driver 连接到我的 mysql 实例?
【问题讨论】:
标签: mysql amazon-web-services ssl go