尝试使用 SSL/TLS 将 Spring 应用程序连接到 Postgresql GCP 实例

问题描述 投票:0回答:1

我正在尝试将我的 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-gcp 文档

Spring Cloud 文档上甚至没有列出如何连接到 PostgreSQL。

我已确保该实例工作正常,将其与 Dbeaver 的那些证书连接起来,它已连接。从我的 Spring 项目连接并关闭 SSL,一切运行正常。但是一旦启用 SSL,即使授权所有网络连接(0.0.0.0/0),它也无法从我的 Spring 应用程序连接。

如果我的配置中缺少某些内容,有人可以给我一些提示,或者我应该查看的任何提示。

如果有人能为我提供有关如何使用 SSL 连接到 GCP 实例的示例存储库,我将不胜感激。我应该把所有这些证书放在哪里?我应该如何配置我的 GCP 实例?

提前致谢。

使用 Maven 作为构建工具,从 Spring 应用程序配置与 Google Cloud 实例上的 PostgreSQL 的 SSL 数据库连接

postgresql google-cloud-platform spring-cloud google-cloud-sql spring-cloud-gcp
1个回答
0
投票

我能够通过添加以下 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")

}

© www.soinside.com 2019 - 2024. All rights reserved.