vin*_*nce 4 heroku ruby-on-rails-6
我创建了一个新的 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`
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,我能够在设置RAILS_MASTER_KEY为生产密钥后使其工作
heroku config:unset RAILS_PRODUCTION_KEY
heroku config:set RAILS_MASTER_KEY=`cat config/credentials/production.key`
Run Code Online (Sandbox Code Playgroud)
如何让 HerokuRAILS_PRODUCTION_KEY在 Rails 6 应用程序中识别?
我也在努力弄清楚这个问题。(这不是Heroku 特定的问题。)
底线:命名的环境变量RAILS_PRODUCTION_KEY(或任何其他 Rails 环境风格的变量名称)不是一个东西——Rails 不注意它。
从上轨道6个凭据特征(弱,IMO)Rails文档,我曾错误地认为生产的关键(无论是在RAILS_PRODUCTION_KEY环境变量或config/credentials/production.key)将解密config/credentials/production.yml.enc的主密钥(无论是在RAILS_MASTER_KEY环境变量或config/master.key)将解密config/credentials.yml.enc,并给定密钥 inconfig/credentials/production.yml.enc的值将覆盖该密钥 in的值config/credentials.yml.enc。这是不是这种情况。
这是它的实际工作方式:
config/master.key的默认位置是 ,机密文件的默认位置是config/credentials.yml.enc。RAILS_MASTER_KEY定义了环境变量 of ,Rails 将从环境变量中读取解密密钥,而不是从config/master.key。production/ development/等),如果相应的秘密文件中存在config/credentials(例如config/credentials/production.yml.enc),那么Rails会使用该秘密文件只,并且它会使用相应的解密密钥(例如config/credentials/production.key)仅解密它。RAILS_MASTER_KEY定义了环境变量 of ,Rails 将从环境变量中读取解密密钥,而不是从解密密钥文件中读取。注意:无论 Rails 环境如何,覆盖解密密钥文件的环境变量始终是 RAILS_MASTER_KEY.| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |