我有一个在AWS上运行的RDS实例,我想知道如何通过ssl连接到该实例。
从此链接将SSL与mysql数据库一起使用。AWS设置我们的数据库,该数据库已注册了证书并提供了根证书供下载。 AWS RDS根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")
Run Code Online (Sandbox Code Playgroud)
该示例表明我需要客户端证书和客户端密钥。
但是亚马逊只提供根证书。如何与go-mysql-driver一起使用以连接到我的mysql实例?
我正在尝试为 aws 上的 api gateway 中的 api 设置自定义域名。我已经使用 terraform 设置了 api。但是,当我尝试设置自定义域时,它失败并出现以下错误。
应用计划时出错:
发生 1 个错误:
module.BillingMetrics.aws_api_gateway_base_path_mapping.billing:发生 1 个错误:
aws_api_gateway_base_path_mapping.billing:创建网关基本路径映射时出错:创建网关基本路径映射时出错:BadRequestException:指定的 REST API 标识符无效状态代码:400,请求 ID:b14bbd4c-5823-11e7-a4ea-93525a34b321
我可以在 terraform 日志中看到它确实获得了正确的 api_id。但我不明白为什么它说其余的 api 标识符无效。
下面是我的 terraform 文件的摘录,显示了我如何配置 api_gateway_base_path_mapping。
resource "aws_api_gateway_resource" "views_resource" {
provider = "aws.regional"
rest_api_id = "${aws_api_gateway_rest_api.billing_api.id}"
parent_id = "${aws_api_gateway_rest_api.billing_api.root_resource_id}"
path_part = "views"
}
resource "aws_api_gateway_method" "views-get" {
provider = "aws.regional"
rest_api_id = "${aws_api_gateway_rest_api.billing_api.id}"
resource_id = "${aws_api_gateway_resource.views_resource.id}"
http_method = "GET"
authorization = "NONE"
}
resource "aws_api_gateway_method_response" "views_200" {
provider = "aws.regional"
rest_api_id = "${aws_api_gateway_rest_api.billing_api.id}" …Run Code Online (Sandbox Code Playgroud)