security - 从 Rails 5.1.6.2 升级到 6.0.0 时,如何使加密的凭据正常工作?
问题描述
我刚刚完成了通过 5.2 将我们的 Rails 应用程序从 5.1.6.2 升级到 6.0.0 的步骤,(我选择在 6.0.0 之前不担心凭据问题,以防它最终意味着我必须弄清楚新凭据两次)。
我一直在查看一些关于如何在升级时使用新凭据的指南,但他们都觉得他们错过了最后一步,或者我误解了一些东西。根本不进行凭据升级似乎在我的本地开发环境中没有引起任何问题,但是在尝试部署到我们的生产环境(Convox/AWS)时,我收到以下错误:
Missing encryption key to decrypt file with. Ask your team for your master key and write it to /app/config/master.key or put it in the ENV['RAILS_MASTER_KEY'].
令人困惑的是(对我来说),这已经是一个带有密钥集的该名称的 ENV var,并且在单步执行指南之前或之后对其进行的任何本地更改都会引发ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)
错误。
逐步浏览指南,我使用的是 Sublime,所以最初我运行EDITOR="subl --wait" rails credentials:edit
,然后将密钥基值粘贴到当前值config/master.key
- 导致上述错误。这让我不确定我应该如何处理 secret_key_base 密钥。我已经尝试将它放在 prod env var RAILS_MASTER_KEY 中,但是在部署时仍然出现错误Missing encryption key to decrypt file with. Ask your team for your master key and write it to /app/config/master.key or put it in the ENV['RAILS_MASTER_KEY'].
,我尝试删除 secrets.yml 文件以防覆盖某些内容,但这不会改变部署消息。
那么我还应该做什么呢?
解决方案
我会master.key
在您的config
文件夹中创建一个文件并将您的密钥添加到其中。(您用于设置RAILS_MASTER_KEY
env var 的值。但是,请确保将其从 VCS 中排除(只需将其添加到您.gitignore
的完全加密的凭据文件....但这是另一回事。
推荐阅读
- python - 使用 python 从 sqlite3 获取字段数量
- reactjs - 同一页面上的多个对话框
- pyautogui - pyautogui。不显示位置或 rgb 值
- javascript - 尝试制作会员计数不和谐机器人
- python - 如何使用 python 修改 pandas 数据框中的项目?
- reactjs - 无法更改样式化组件主题提供程序
- ionic-framework - 如何在 ionic 4 中禁用 --keyboard-offset?
- typescript - 如何将数据注入 NestJS 拦截器
- pandas - 添加彩色堆叠图表栏
- javascript - 如何获取 Javascript 和 Python Flask 都可以访问的登录信息