我正在尝试将我的 Spring 应用程序与 maven 作为构建工具连接到我的 GCP 项目上的 postgres 实例。
我设置了一个 postgres 实例,生成了 client-key.pem、client-cert.pem 和 server-ca.pem,在这些实例上打开了 ssl,并将所有这些证书添加到我本地运行的项目(src/main/resources/ SSL)。
这是我尝试使用 ssl 连接到 gcp 的一些 application.properties
1.
spring.datasource.url= jdbc:postgresql://[[DATABASEIP]]:[[DATABASEPORT]]/[[DATABASENAME]]?sslmode=verify-ca&sslrootcert=/ssl/server-ca.pem&sslcert=/ssl/client-cert.pem&sslkey=/ssl/client-key.pk8
spring.datasource.username=[[DB_USERNAME]]
spring.datasource.password=[[DB_PASSWORD]]
2.
spring.datasource.url=jdbc:postgresql:///[[DATABASENAME]]?cloudSqlInstance=[gcp-project-id]:[region]:[instance-name]&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=[[DB_USERNAME]]&password=[[DB_PASSWORD]]
spring.datasource.continue-on-error=true
3.
spring.cloud.gcp.sql.enabled=true
spring.cloud.gcp.sql.database-name=[[DATABASENAME]]
spring.cloud.gcp.datastore.host=[[DATABASEIP]]
spring.cloud.gcp.sql.instance-connection-name=[gcp-project-id]:[region]:[instance-name]
spring.datasource.continue-on-error=true
都不起作用
我试图找到一个 github 存储库,在那里我可以看到如何正确设置 Spring 应用程序以连接到 GCP,找到了一些,但没有提供使用 SSL 连接
github.com - spring-cloud-gcp-sql-postgres-sample
Spring Cloud 文档上甚至没有列出如何连接到 PostgreSQL。
我已确保该实例工作正常,将其与 Dbeaver 的那些证书连接起来,它已连接。从我的 Spring 项目连接并关闭 SSL,一切运行正常。但是一旦启用 SSL,即使授权所有网络连接(0.0.0.0/0),它也无法从我的 Spring 应用程序连接。
如果我的配置中缺少某些内容,有人可以给我一些提示,或者我应该查看的任何提示。
如果有人能为我提供有关如何使用 SSL 连接到 GCP 实例的示例存储库,我将不胜感激。我应该把所有这些证书放在哪里?我应该如何配置我的 GCP 实例?
提前致谢。
使用 Maven 作为构建工具,从 Spring 应用程序配置与 Google Cloud 实例上的 PostgreSQL 的 SSL 数据库连接
我能够通过添加以下 url 和依赖项来解决它。
spring.datasource.url= jdbc:postgresql://[[DATABASEIP]]:[[DATABASEPORT]]/[[DATABASENAME]]?cloudSqlInstance=[gcp-project-id]:[region]:[instance-name] &socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=[[DB_USERNAME]]&password=[[DB_PASSWORD]]
dependencies {
// Add
implementation("com.google.cloud.sql:postgres-socket-factory:X.XX.X")
}