【发布时间】:2018-04-11 18:35:16
【问题描述】:
我刚刚从 5.1 升级到 5.2,我对这种存储机密的“更好”方法感到很困惑...
也许我不明白,但现在开发和生产似乎已经“合并”成一个 SECRET_KEY_BASE 以及 master.key... 这是正确的吗?
如果没有,我如何在开发中使用单独的主密钥和SECRET_KEY_BASE?
如果我有开发人员帮助我,但我不想让他们知道我在生产中使用的主密钥(或秘密)怎么办?
【问题讨论】:
-
您可以(并且应该)通过 ENV var 提供 SECRET_KEY_BASE,这样它就不会检入源代码。在开发中,你可以使用任何你想要的 SECRET_KEY_BASE - 它只是用于签署 cookie 和 Devise 中的盐之类的东西。
-
如果它删除了
production和development细分以便我可以分别指定它们,我该怎么做? -
如果您使用的是 ENV 变量,则不需要“单独的字段” - 只需在 heroku 仪表板中设置生产密钥,并在您正在开发的本地计算机上设置其他内容。这就是重点。 devcenter.heroku.com/articles/config-vars
-
我实际上完全错了。 Rails 5.2+ 的秘密处理与加密的秘密文件一起使用,其中 RAILS_MASTER_KEY 包含加密密钥。这使得它与基于 ENV 的配置直接不一致。由于12factor.net/config 中列出的原因,我仍然不相信这是一种更好的方法
标签: ruby-on-rails ruby ruby-on-rails-5 ruby-on-rails-5.2