我正在尝试设置一个头盔图,其中使用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
如果我将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]
似乎它正在尝试查找证书,但如果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]
基本上,它似乎仍然没有真正使用SSL进行连接。
连接字符串:jdbc:postgresql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?loginTimeout=1&useSSL=true
如果不使用useSSL=true
,我会使用ssl=true
,然后就可以了。
jdbc postgresql驱动程序中ssl
和useSSL
之间有什么区别? (我在useSSL
上找不到任何文档)
我应该经常通过两面旗帜吗?如果我只想使用一个模板变量,那么传递两个标志是否有问题?
我目前的猜测是ssl
用于尝试在系统中查找证书,而useSSL
用于通过安全端口与默认端口连接到数据库。
答案 0 :(得分:1)
useSSL
从未被视为连接参数。该属性基本上被忽略 sslmode
属性可能会更好运(见https://jdbc.postgresql.org/documentation/head/connect.html)。它取代了ssl
属性,并为您配置连接提供了灵活性
sslmode
可能的值包括disable
,require
,verify-ca
和verify-full
,allow
和prefer