私はRuby 2.5.1およびRails 5.2.0。を実行しましたRails s -e production
、およびこのエラーが発生します。
/home/roy/.rbenv/versions/2.5.1/lib/Ruby/gems/2.5.0/gems/activesupport-5.2.0/lib/active_support/message_encryptor.rb:206:in `rescue in_decrypt': ActiveSupport::MessageEncryptor::InvalidMessage
(ActiveSupport::MessageEncryptor::InvalidMessage)
これを正しく行うにはどうすればよいですか?
EDIT:を使用して資格情報ファイルを編集しようとすると、常に同じエラーが表示されます
EDITOR="nano --wait" bin/Rails credentials:edit
また、私はまだ本番データベースを作成していないことに気づいたので、それを使って試しました
Rails_ENV=production bundle exec Rails db:reset
(db:resetは少し冗長ですが、サーバーを作成、移行、およびシードしようとして機能するはずです)
悲しいことに、私は同じ種類のエラー(InvalidMessageエラー)を受け取ります
Unsupported Rails environment for compass
rake aborted!
ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
/home/roy/apps/myappname/config/environment.rb:5:in `<main>'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Caused by:
OpenSSL::Cipher::CipherError:
/home/roy/apps/myappname/config/environment.rb:5:in `<main>'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Tasks: TOP => db:create => db:load_config => environment
さて、ようやく機能しました。
単にmaster.key
およびcredentials.yml.enc
ファイルを削除してから実行しました
bin/Rails credentials:edit
新しいファイルを作成しました。その後、すべてがうまくいきました。
なぜそれが機能するのか本当に理解していません。誰もこれについて良い説明をすることができますか?
master.key
とcredentials.yml.enc
を削除するソリューションは、Rails 5.2を実行していることを示しているようです。この設定は、Rails 5.1で使用されていた同様の暗号化されたsecrets.yml.enc
ファイルから変更されました。
目標は、秘密鍵(AWS、Railsのsecrect_key_base
)をプロジェクトのコードリポジトリにコミットできるようにすることです。これらは通常、ENV変数で設定されます。現在、共同編集者は、master.key
のコンテンツを復号化、変更、または読み取るために生成されたcredentials.yml.enc
のみを共有する必要があります。
master.key
ファイルとcredentials.yml.enc
ファイルの両方を削除すると、Railsが新しいペアを生成し、credentials.yml.enc
を復号化でき、このファイルは新しい_で初期化されましたRails secret_key_base
の値はActiveSupport::MessageEncryptor::InvalidMessage
を回避するために必要です。そのメッセージのソースを追跡する場合、Railsクレデンシャルの秘密鍵ベースRails.application.credentials.secret_key_base
を参照している可能性があります。
これらは、トピックに関する素晴らしい記事です。
https://medium.com/cedarcode/Rails-5-2-credentials-9b3324851336https://www.engineyard.com/blog/Rails-encrypted -credentials-on-Rails-5.2