【问题标题】:Configuring Postgres for tcp md5 in docker environment在 docker 环境中为 tcp md5 配置 Postgres
【发布时间】:2017-02-08 14:10:33
【问题描述】:

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

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

listen_addresses = '*'
local all all md5
host all all all md5

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

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)

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

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

当我将密码作为明文输入时,它可以工作。

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

我配置错了什么?

【问题讨论】:

  • “当我将密码作为明文输入时,它可以工作。”是什么意思?.. 你把密码放在哪里?
  • 这是一个使用 Hibernate 的 sprint-boot 应用程序,密码位于 application.properties 中的一个名为:spring.datasource.password 的属性中
  • 那么您可能会将hba.conf 中的md5 与您传递给db 进行身份验证的md5 哈希混淆?...
  • @VaoTsun 你是什么意思?
  • 当您在 hba.conf 中有 md5 时,并不意味着您应该使用 md5 代替您的密码。抱歉 - 我没有使用 Hibernate 的经验。只是那句话“当我将密码作为明文输入时,它可以工作。”给了我想法,您尝试使用密码哈希来通过身份验证

标签: postgresql jdbc docker tcp md5


【解决方案1】:

According to docs:

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

password 要求客户端提供未加密的密码 验证。由于密码以明文形式通过 网络,这不应该在不受信任的网络上使用。见部分 20.3.2 了解详情。

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

也看这里: https://stackoverflow.com/a/39038852/5315974

【讨论】:

  • 也许是因为英语不是我的第一语言,但对我来说这意味着 Postgres 可以获得 MD5 加密密码并将它们与加密的原始密码进行比较。此外,当我的配置为:host all all 127.0.0.0/24 md5 我的带有 Hibernate 应用程序的 spring-boot 即使使用加密密码也能正常工作。我当然不是怀疑你,我只是困惑
  • 让我们这样说吧。 postgresql.org/docs/9.2/static/protocol-flow.html 您的连接代码中有“AuthenticationMD5Password”吗?如果不是 - 不要自己散列密码。如果你这样做了——我很抱歉——你做对了。现在为什么您可以在 hba 中使用具有 host all all 127.0.0.0/24 md5 的错误(散列)密码登录 - 因为您在该行之前有 trust 用于您的连接。如果这些看起来合理吗?
  • 不,我删除了信任
  • 你能用 psql 连接到数据库吗?如果可以,我可以给你一些关于如何检查身份验证的建议,如果不能 - 抱歉 - 我没有使用 Hibernate 的经验
猜你喜欢
  • 2015-01-12
  • 2018-05-08
  • 2014-06-02
  • 2018-04-14
  • 1970-01-01
  • 2017-11-16
  • 2019-02-18
  • 2015-11-26
  • 2017-05-30
相关资源
最近更新 更多