从Rails 5.1.6.2升级到6.0.0时,如何获得加密的凭证才能工作?

时间:2019-11-21 13:28:42

标签: security credentials ruby-on-rails-5.2 ruby-on-rails-6

我刚刚完成了通过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变量,并且在逐步通过指南之前或之后在本地对其进行的任何更改都会引发ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)错误。

逐步浏览指南,我使用Sublime,因此最初我运行了EDITOR="subl --wait" rails credentials:edit,然后将密钥基本值粘贴到了config/master.key的当前值上-导致了上面的错误。这让我不确定使用secret_key_base密钥实际上应该做什么。我尝试将其放入产品环境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文件以防万一它覆盖了某些内容,但是没有改变部署消息。

那我还应该做什么?

1 个答案:

答案 0 :(得分:1)

我会在您的master.key文件夹中创建一个config文件,并将密钥添加到其中。 (您用来设置RAILS_MASTER_KEY env var的值。但是,请确保将其从VCS中排除(只需将其添加到.gitignore中即可。)这应该可以解决您的问题,因为关键是正确的否则,您将必须完全重新生成加密的凭据文件。...但这是另一回事。