在postgresql中的SSL连接上"HostName not verified error message"



我在 Centos 7 上创建了server.crtserver.keyroot.crt文件,并在 Windows 上运行 postgresql 服务器时将它们放在 Windows 中的C:UsersxxxxAppDataRoamingpostgresql文件夹中。现在使用 SSL 运行我的应用程序时,我收到错误

"无法验证主机名">

请帮忙。

我正在使用 JetBrains Data Grip 访问 Heroku 上的 Postgres 数据库,并在最新的 JDBC 驱动程序版本中遇到了同样的错误。这就是我解决它的方式(使用此处提供的答案(。

在"高级"选项卡中设置以下内容:

SSL=真

SSL模式=需要

sslfactory=org.postgresql.ssl.NonValidatingFactory

(我将sslmode值从verify-ca更新为required,因为它现在适用于 Heroku Postgres(

如果您不关心主机名验证,但仍想使用证书,则可以将附加参数sslmode=verify-ca用作连接参数或 URL 的一部分,以禁用主机名验证,同时保留证书验证。

要在不使用服务器证书验证的情况下使用 PostgreSQL JDBC 驱动程序,请使用

sslfactory=org.postgresql.ssl.NonValidatingFactory

作为连接参数或 URL 的一部分,如文档中所述。

对于更高版本的 JDBC 驱动程序,您必须指定

sslmode=require

因为默认值verify-full表示客户端要检查服务器的证书和身份。

相关内容

最新更新