Go を使用して TCP 接続用の SSL 証明書を構成する

Go の database/sql パッケージを使用して、Cloud SQL for MySQL への TCP 接続用に SSL(セキュア ソケット レイヤ)証明書を構成します。

コードサンプル

Go

// (OPTIONAL) Configure SSL certificates
// For deployments that connect directly to a Cloud SQL instance without
// using the Cloud SQL Proxy, configuring SSL certificates will ensure the
// connection is encrypted. This step is entirely OPTIONAL.
dbRootCert := os.Getenv("DB_ROOT_CERT") // e.g., '/path/to/my/server-ca.pem'
if dbRootCert != "" {
	var (
		dbCert = mustGetenv("DB_CERT") // e.g. '/path/to/my/client-cert.pem'
		dbKey  = mustGetenv("DB_KEY")  // e.g. '/path/to/my/client-key.pem'
	)
	pool := x509.NewCertPool()
	pem, err := ioutil.ReadFile(dbRootCert)
	if err != nil {
		return nil, err
	}
	if ok := pool.AppendCertsFromPEM(pem); !ok {
		return nil, err
	}
	cert, err := tls.LoadX509KeyPair(dbCert, dbKey)
	if err != nil {
		return nil, err
	}
	mysql.RegisterTLSConfig("cloudsql", &tls.Config{
		RootCAs:               pool,
		Certificates:          []tls.Certificate{cert},
		InsecureSkipVerify:    true,
		VerifyPeerCertificate: verifyPeerCertFunc(pool),
	})
	dbURI += "&tls=cloudsql"
}

次のステップ

他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。