java - 通过 JDBC 连接到 CloudSQL for PostgreSQL 时,如何在类路径上指定 SSL 证书?

标签 java postgresql ssl jdbc google-cloud-sql

我正在开发一个将在 Google Kubernetes Engine 上运行的应用程序,我需要通过 JDBC 连接到 CloudSQL 数据库 (PostgreSQL)。问题是这个特定的数据库启用了 SSL/TLS。
PostgreSQL 的 JDBC 驱动程序 supports certificates但只能通过绝对文件路径。我的证书位于 src/main/resources ,所以绝对路径并不是一个真正的选择。 PostgreSQL 中的默认解决方案似乎是使用能够从类路径加载证书文件的专用套接字工厂。但是,由于我需要连接到 CloudSQL,我需要使用 Socket Factory provided by Google .我试图弄清楚谷歌的 Socket Factory 实现是否以及如何支持证书以及如何加载它们,但我找不到任何文档。
TL;DR:

  • CloudSQL for PostgreSQL 与 SSL/TLS
  • 证书位于类路径
  • 什么是 JDBC URL,特别是 SSL/TLS 配置部分?
  • 最佳答案

    如果您使用 Cloud SQL Socket Factory,则无需提供证书。
    套接字工厂的主要吸引力之一是它使用临时证书为您处理所有 TLS 隧道。

    关于java - 通过 JDBC 连接到 CloudSQL for PostgreSQL 时,如何在类路径上指定 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71204147/

    相关文章:

    java - 为什么 Java Optional 性能会随着链接调用的数量而增加?

    java - Java中使用tink时解密错误

    java - 尽管有最大长度,但由于没有最大长度的后视而抛出模式语法异常

    haskell - 在 Network.HTTP.Conduit 中禁用 SSL/TLS 证书验证

    java - str.equals ("") 和 "".equals(str) 之间有什么区别?

    postgresql - 带参数的列 postgres 函数的默认值

    regex - 如何在 Postgresql 中去掉中文

    python-3.x - Django 项目中的多个应用程序

    ssl - 无法列出 *v1alpha1.Order : orders. certmanager.k8s.io 被禁止

    git - 如何为所有子域设置 Git 配置选项?