如何解决通过JDBC连接到Postgres服务器时,sslmode参数的默认值?
我们正在通过jdbc和psql(libpq)连接到Postgres服务器。我已经将ssl设置为postgres服务器上。它可以使用ssl以及非ssl连接。 我通过psql客户端与postgres服务器建立了连接,并可以确认默认sslmode(在建立连接时未提供sslmode参数的情况下)为“ prefer”。请注意,我没有在psql的连接字符串中提供sslmode参数。仍然保持连接
psql "postgresql://$POSTGRES_HOST:$PG_PORT/postgres" -U postgres
psql (9.6.18,server 9.6.12)
SSL connection (protocol: TLSv1.2,cipher: ECDHE-RSA-AES256-GCM-SHA384,bits: 256,compression: off)
Type "help" for help
。 这意味着psql首选使用默认的sslmode。 我已经阅读了AWS文档中的与服务器的jdbc连接,默认模式为“验证完全”。我通过不向连接字符串提供sslmode来创建与postgres服务器的jdbc连接。传递“ verify-ca”和“ verify-full”无法连接到postgres服务器,并且没有找到证书异常。连接成功。我只想确认打开ssl时与Postgres服务器的jdbc连接的默认sslmode是什么。我认为应该要求以下。
解决方法
JDBC驱动程序的默认设置是使用sslmode
中的verify-full
。
有许多用于为SSL配置客户端的连接参数。参见SSL Connection parameters
最简单的是ssl = true,将其传递给驱动程序将使驱动程序同时验证SSL证书和验证主机名(与verify-full相同)。请注意,这不同于libpq,后者默认为非验证SSL连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。