我删除了secrets.yml
并创建了credentials.yml.enc
。
我在本地使用master.key
,在生产环境中我没有任何主密钥,只有RAILS_MASTER_KEY
被设置为环境变量。
在Heroku上,如果我运行Rails.application.secrets
,则会得到:
{:secret_key_base=>nil, :secret_token=>nil}
如果我运行Rails.application.credentials
,我实际上会看到我的secret_key_base
。
但是,在本地...如果我运行相同的命令,我会 DO 在调用secret_key_base
时看到Rails.application.secrets
。
我主要担心的是,rails在生产中将有一个空的secret_key_base
,它将用于加密会话和所有至关重要的安全性事物。我正在尝试验证它是否确实具有密钥集。
我希望有一种方法可以100%确认它正在生产中并且不是空白。我可以调用某些方法来检查哪些方法不依赖于通过上述方法调用它吗?
答案 0 :(得分:0)
SECRET_KEY_BASE作为环境变量存储在Heroku中。您可以通过转到该dyno的设置在界面中查看这些内容,也可以在终端中进行以下操作:
heroku run bash
然后
env | grep SECRET_KEY_BASE
如果看不到它,则可能有问题,但是您可以为Heroku生成一个新的问题并将其设置在环境变量中(请参见Rails.application.key_generator
)