gpt4 book ai didi

heroku - 如何在 Heroku 上的 Rails 6 应用程序上设置 RAILS_PRODUCTION_KEY 配置变量

转载 作者:行者123 更新时间:2023-12-04 12:14:02 24 4
gpt4 key购买 nike

我创建了一个新的 Rails 6 应用程序,因为它支持多环境凭据,我正在尝试使用 RAILS_PRODUCTION_KEY配置变量并删除默认值 RAILS_MASTER_KEY

heroku config:unset RAILS_MASTER_KEY 
heroku config:set RAILS_PRODUCTION_KEY=`cat config/credentials/production.key`
然而,这不起作用,我能够在设置 RAILS_MASTER_KEY 后让它工作。到生产键
heroku config:unset RAILS_PRODUCTION_KEY
heroku config:set RAILS_MASTER_KEY=`cat config/credentials/production.key`
如何让 Heroku 识别 RAILS_PRODUCTION_KEY在 Rails 6 应用程序中?

最佳答案

我也在努力弄清楚这个问题。 (这不是 Heroku 特定的问题。)
底线:一个名为 RAILS_PRODUCTION_KEY 的环境变量(或任何其他 Rails 环境风格的变量名)不是一个东西——Rails 不注意它。
从关于 Rails 6 凭证功能的(弱的,IMO)Rails 文档中,我有 错误 假设生产 key (在 RAILS_PRODUCTION_KEY 环境变量或 config/credentials/production.key 中)将解密 config/credentials/production.yml.enc ,主 key (在 RAILS_MASTER_KEY 环境变量或 config/master.key 中)将解密 config/credentials.yml.enc , config/credentials/production.yml.enc 中给定 key 的值将覆盖 config/credentials.yml.enc 中该键的值.这是不是 案子。
是这样的实际上作品:

  • Rails 6 使用 单例解密 key 单例加密的 secret 文件。
  • 解密 key 的默认位置是 config/master.key并且 secret 文件的默认位置是 config/credentials.yml.enc .
  • 如果环境变量为 RAILS_MASTER_KEY定义后,Rails 将从环境变量中读取解密 key ,而不是从 config/master.key .
  • 当在给定的 Rails 环境( production/development/etc.)中运行时,如果 config/credentials 中存在相应的 secret 文件(例如, config/credentials/production.yml.enc ),那么 Rails 将使用该 secret 文件 只有 ,它将使用相应的解密 key (例如, config/credentials/production.key )只有解密它。
  • 如果环境变量为 RAILS_MASTER_KEY定义后,Rails 将从环境变量中读取解密 key ,而不是从解密 key 文件中读取。注意:无论 Rails 环境如何,覆盖解密 key 文件的环境变量始终是 RAILS_MASTER_KEY .
  • 关于heroku - 如何在 Heroku 上的 Rails 6 应用程序上设置 RAILS_PRODUCTION_KEY 配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63642303/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com