我们正在通过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是什么。我认为应该要求以下。
答案 0 :(得分:1)
JDBC驱动程序的默认设置是使用sslmode
中的verify-full
。
有许多用于为SSL配置客户端的连接参数。参见SSL Connection parameters
最简单的是ssl = true,将其传递给驱动程序将使驱动程序同时验证SSL证书和验证主机名(与verify-full相同)。请注意,这不同于libpq,后者默认为非验证SSL连接。