You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7部署至Render.com遇OpenSSL::Cipher::CipherError求助

Rails API部署到Render.com时的ActiveSupport加密错误解决办法

错误信息

Mar 15 04:18:01 PM  Installing bootsnap 1.13.0 with native extensions
Mar 15 04:18:11 PM  Bundle complete! 13 Gemfile dependencies, 82 gems now installed.
Mar 15 04:18:11 PM  Gems in the groups 'development' and 'test' were not installed.
Mar 15 04:18:11 PM  Bundled gems are installed into `/opt/render/project/.gems`
Mar 15 04:18:16 PM  rails aborted!
Mar 15 04:18:16 PM  ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
Mar 15 04:18:16 PM  /opt/render/project/src/config/environment.rb:5:in `<main>'
Mar 15 04:18:16 PM  
Mar 15 04:18:16 PM  Caused by:
Mar 15 04:18:16 PM  OpenSSL::Cipher::CipherError:
Mar 15 04:18:16 PM  /opt/render/project/src/config/environment.rb:5:in `<main>'
Mar 15 04:18:16 PM  Tasks: TOP => db:migrate => db:load_config => environment
Mar 15 04:18:16 PM  (See full trace by running task with --trace)
Mar 15 04:18:17 PM  ==> Build failed 😞
Mar 15 04:18:17 PM  ==> Generating container image from build. This may take a few minutes...

问题原因

该错误源于Rails生产环境的SECRET_KEY_BASE配置缺失或不匹配,导致ActiveSupport无法正确解密敏感数据,进而触发OpenSSL加密异常。

解决步骤

  • 配置Render环境变量

    1. 登录Render控制台,打开你的Rails API项目
    2. 进入「Environment」标签页,检查是否存在SECRET_KEY_BASE变量
    3. 若未设置,在本地终端运行rails secret生成新的加密密钥,复制输出的字符串
    4. 在Render的环境变量列表中添加SECRET_KEY_BASE,值填入刚才复制的密钥
  • 验证项目配置文件

    1. 若使用旧版本Rails的config/secrets.yml,确保production区块配置为:
      production:
        secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
      
    2. 若使用Rails 5.2+的credentials系统,确保生产环境credentials已正确配置,或直接通过环境变量覆盖密钥
  • 重新触发构建
    在Render项目页面点击「Manual Deploy」→「Clear build cache & deploy」,确保新环境变量生效,重新执行构建部署

内容的提问来源于stack exchange,提问作者Artur Gouveia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:52:13