You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署OpenProject 14至Azure时遇PG::InternalError(FIPS禁用MD5哈希)求助

解决Azure Postgres Flexible + OpenProject 14 在FIPS合规租户下的MD5哈希错误

错误原因

FIPS合规模式下,PostgreSQL禁用了MD5哈希算法,但OpenProject默认连接或内部操作依赖MD5,导致抛出could not compute MD5 hash: disabled for FIPS错误。

解决方案

1. 切换Postgres Flexible Server的认证方式为SCRAM-SHA-256

  • 登录Azure门户,定位到你的Postgres Flexible Server实例
  • 进入连接安全选项卡,找到认证方法配置项
  • 将认证方法从MD5切换为SCRAM-SHA-256
  • 保存设置后,重启Postgres服务器使配置生效

2. 更新数据库用户的密码(适配SCRAM认证)

切换认证方式后,需重新设置数据库用户密码,让Postgres生成SCRAM格式的哈希:

ALTER USER your_db_user WITH PASSWORD 'your_new_strong_password';

替换your_db_user和your_new_strong_password为实际的数据库用户名和密码

3. 调整OpenProject的数据库连接配置

修改OpenProject的数据库连接参数,强制使用SCRAM认证:

  • 如果使用配置文件config/database.yml,添加scram-sha-256: true参数:
production:
  adapter: postgresql
  host: your-postgres-host.postgres.database.azure.com
  database: openproject_db
  username: your_db_user@your-postgres-host
  password: your_new_strong_password
  sslmode: require
  scram-sha-256: true
  • 如果使用环境变量配置,更新DATABASE_URL:
DATABASE_URL=postgres://your_db_user@your-postgres-host:5432/openproject_db?sslmode=require&scram-sha-256=true&password=your_new_strong_password

4. 配置OpenProject使用FIPS兼容的密码哈希算法

确保OpenProject存储用户密码时使用FIPS认可的算法(如PBKDF2-SHA256):
编辑OpenProject的config/initializers/devise.rb文件,修改密码哈希器配置:

Devise.setup do |config|
  # 替换默认哈希算法为PBKDF2-SHA256
  config.password_hasher = :pbkdf2_sha256
end

PBKDF2-SHA256是FIPS合规的哈希算法,可替代MD5或bcrypt(部分环境下bcrypt未纳入FIPS认证)

验证部署

完成以上配置后,重新启动OpenProject服务,检查是否能正常连接数据库并完成初始化。

内容的提问来源于stack exchange,提问作者Pravyn Raju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:17:34