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



我正在尝试将我的Spring应用程序与maven作为构建工具连接到我的GCP项目上的postgres实例。

我已经设置了一个postgres实例,生成了client-key。pem, client-cert。pem,server-ca。在这些实例上打开SSL,并将所有这些证书添加到我本地运行的项目(src/main/resources/SSL)。

这里有一些应用。我试图用ssl连接到gcp的属性

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应用程序连接。

有人能给我一些提示,如果我错过了我的配置,或任何提示,我应该看。

我真的很感激,如果有人能给我提供一个如何连接到GCP实例与SSL的例子库。我应该把这些证书放在哪里?我应该如何配置我的GCP实例?

提前感谢。

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

我可以通过添加以下url和依赖项来解决这个问题。

spring.datasource。url = jdbc: postgresql://[[DATABASEIP]]: [[DATABASEPORT]]/[[数据库名]]? cloudSqlInstance = [gcp-project-id]:[地区]:[实例名称],socketFactory = com.google.cloud.sql.postgres.SocketFactory&用户= [[DB_USERNAME]]和密码= [[DB_PASSWORD]]

dependencies {
// Add
implementation("com.google.cloud.sql:postgres-socket-factory:X.XX.X")
}