在docker环境中为tcp md5配置Postgres

时间:2017-02-08 14:10:33

标签: postgresql jdbc docker tcp md5

我正在尝试配置Postgres以接收带有md5加密密码的连接。我阅读了大量的手册并按照说明操作,但我没有成功。

我们有几个docker容器,其中一个是我们使用init_db.sh脚本配置的Postgres 9容器。正在运行的容器上的最终配置是:

COMMAND     PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 17454 sigals   36u  IPv4 0x13ec351b99f025cd      0t0  TCP *:postgresql (LISTEN)
com.docke 17454 sigals   37u  IPv6 0x13ec351b8ce8a025      0t0  TCP localhost:postgresql (LISTEN)

正在运行:lsof -i tcp:5432(我现在在我的Mac上运行),产生了这个:

2017-02-08T14:07:43.438478547Z org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"

当我启动使用加密密码运行的容器时,我得到: 错误org.apache.tomcat.jdbc.pool.ConnectionPool:182 - 无法创建池的初始连接。

$scope.submissionInProgress

当我把密码作为明文时,它可以工作。

当我仅将IP配置为localhost时,加密密码和纯文本密码都有效。

我配置错误了什么?

1 个答案:

答案 0 :(得分:0)

According to docs:

  

md5要求客户端提供双MD5哈希密码   认证。有关详细信息,请参见第20.3.2节。

     

密码要求客户端提供未加密的密码   认证。由于密码是以明文形式发送的   网络,不应该在不受信任的网络上使用。见章节   20.3.2了解详情。

jdbc连接将散列您在连接字符串中提供的密码 - 您不必自己使用md5。

另见: https://stackoverflow.com/a/39038852/5315974