我正在尝试将我的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")
}