Jor*_*lva 1 java postgresql ssl liquibase maven
我正在尝试设置一个 helm 图表,其中使用 SSL 是传递给连接字符串以运行迁移的参数,并且在理解jdbc postgres 连接字符串的ssl和参数时遇到问题。useSSL
jdbc SSL 客户端的文档:https://jdbc.postgresql.org/documentation/91/ssl-client.html(讨论ssl标志)
我的命令如下:
command:
- mvn
- process-resources
- -PdbUpdate
- -Ddb.url=jdbc:postgresql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?loginTimeout=1&ssl=VARIABLE
- -Ddb.username=${DATABASE_USERNAME}
- -Ddb.password=${DATABASE_PASSWORD}
- -Dliquibase.contexts=prod
Run Code Online (Sandbox Code Playgroud)
如果我ssl=false将连接字符串传递到没有 SSL 的 postgres 数据库,则会收到以下错误:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.1:update (dbUpdate) on project exchange-api-metadata-db-migrations:\
Error setting up or running Liquibase: liquibase.exception.DatabaseException: org.postgresql.util.PSQLException: The connection attempt failed. sun.security.validator.ValidatorException: PKIX path building failed:\
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
它似乎正在尝试寻找证书,但不确定为什么ssl要这样做false。
连接字符串:jdbc:postgresql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?loginTimeout=1&ssl=false
ssl=false如果我不使用 ,而是使用它useSSL=true,那么它就可以工作。
如果我使用useSSL=true相同的命令,那么
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.1:update (dbUpdate) on project exchange-api-metadata-db-migrations:\
Error setting up or running Liquibase: liquibase.exception.DatabaseException: org.postgresql.util.PSQLException:\
FATAL: no pg_hba.conf entry for host "10.244.83.14", user "stolon", database "exchange-api-metadata-db", SSL off -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
基本上,它似乎仍然没有真正使用 SSL 进行连接。
连接字符串:jdbc:postgresql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?loginTimeout=1&useSSL=true
useSSL=true如果我不使用 ,而是使用它ssl=true,那么它就可以工作。
jdbc postgresql 驱动程序中ssl和之间有什么区别?useSSL(我找不到任何关于 的文档useSSL)我应该始终传递两个标志吗?如果我只想使用一个模板变量,传递两个标志是否会出现问题?
我当前的猜测是,这ssl是为了尝试在系统中查找证书,并且useSSL是为了通过安全端口与默认端口连接到数据库。
useSSL从未被视为连接参数。这个属性基本被忽略了您可能在财产方面有更好的运气sslmode(请参阅https://jdbc.postgresql.org/documentation/head/connect.html)。它取代了ssl属性并为您配置连接的方式提供了灵活性
sslmode可能的值包括disable、require、verify-ca和verify-full、allow和prefer
| 归档时间: |
|
| 查看次数: |
7568 次 |
| 最近记录: |