0

我删除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.

但是,在本地...如果我运行相同的命令,我会secret_key_base调用Rails.application.secrets.

我主要担心的是,rails 将secret_key_base在生产中出现一个空白,用于加密会话和各种至关重要的安全性事物。我正在尝试验证它是否确实具有密钥集。

我希望有一种方法可以 100% 确认它正在生产中工作,并且它不是空白的。有没有我可以调用的方法来检查哪些不依赖于通过上述方法调用它?

4

1 回答 1

0

SECRET_KEY_BASE 作为环境变量存储在 Heroku 上。您可以通过转到该测功机的设置在界面中查看这些内容,也可以在终端中进行查看:

heroku run bash

然后

env | grep SECRET_KEY_BASE

如果您没有看到它,则可能存在问题,但您可以为 Heroku 生成一个新的并在环境变量中设置它(请参阅 参考资料Rails.application.key_generator

于 2019-07-18T13:29:18.283 回答