小编Bob*_*ten的帖子

如何将 Google App Engine API (ASP.NET Core 3.1) 连接到 SSL 上的 Google Cloud SQL (Postgres)?

这是我从未问过的最令人沮丧的问题。我如何连接这两个?

我有一个 API (ASP.NET Core 3.1),我将此应用程序部署到 Google 的 App Engine 上。我还在 Cloud SQL(PostgreSQL 引擎 12)上连接了一个数据库。如果没有 SSL,连接也可以正常工作。添加 SSL 是一个巨大的痛苦。我不断收到以下错误:

Error Connecting to database FATAL : no pg_hba.conf entry for host"x.x.x.x", user"jiradbuser", database"jiradb", SSL off
Run Code Online (Sandbox Code Playgroud)

上述错误实际上没有任何意义,因为我在 GCP 上没有任何选项来修改此类文件。

我已经下载了 Google 在将数据库配置为仅接受 SSL 连接时提供的 client-cert.pem、client-key.pem 和 server-ca.pem 文件,当我在 PSQL 中运行以下命令时,我连接通过 SSL 就可以了:

psql "sslmode=verify-ca sslrootcert=server-ca.pem sslcert=client-cert.pem sslkey=client-key.pem hostaddr=<cloud sql public ip> port=5432 user=< my username> dbname=<database inside cloud sql instance>"
Run Code Online (Sandbox Code Playgroud)

我尝试使用 NpgSqlConnectionStringBuilder 从配置文件中获取相关的 ----BEGIN CERTIFICATE--------END CERTIFICATE--- 文件来生成包含该信息的连接字符串,但这不起作用:

    var connectionStringBuilder = new NpgsqlConnectionStringBuilder(connectionString)
    { …
Run Code Online (Sandbox Code Playgroud)

c# postgresql google-app-engine google-cloud-sql google-cloud-platform

1
推荐指数
1
解决办法
866
查看次数