Rails密钥管理最佳实践与安全配置指南
时间:2026-08-20 | 作者:极客少年 | 阅读:0rails支持多环境密钥管理,也就是生产环境和开发环境的密钥可以分开,提高安全性。
密钥有什么用呢?
比如JWT加密解密,sessionID加密解密,这些都需要key(对称加密)。
开发环境
开发环境中,master.key 和 credentials.yml.enc 是两个文件。
master.key + keys => encrypted(encrypted是加密后的文本)
encrypted + master.key => keys
对应的文件是:master.key、credentials.yml.enc。
编辑密钥
我们可以输入命令行:
bin/rails credentials:edit
上面这个命令默认是用vim编辑器打开,如果想用vscode打开,可以执行下面这个命令
EDITOR="code --wait" bin/rails credentials:edit
指定用什么编辑器打开,可以编辑EDITOR="*******"
例如指定vim编辑器打开
EDITOR="vim" bin/rails credentials:edit
系统会创建一个临时文件(如下图)编写key,关闭之后会自动删除这个临时文件。
图中的secret_key_base字段不是固定的。
随后,系统会自动依据这个key和master.key生成credentials.yml.enc。
若不是新建,则会自动更新现有的.enc文件。
读取密钥
怎么查看临时文件里面的信息呢?rails自带的命令行可以查看。
bin/rails console 或者 bin/rails c
然后输入:
查看指定的key
Rails.application.credentials.secret_key_base
查看所有
Rails.application.credentials.config
生产环境
跟开发环境差不多,两个操作:写key 和 读key。
写key比开发环境多了--environment production。
EDITOR="code --wait" rails credentials:edit --environment production
会得到两个文件:
- config/credentials/production.key(已添加到.gitignore中)
- config/credentials/production.yml.enc
读key比开发环境多了RAILS_ENV=production。
RAILS_ENV=production rails c
查看指定的key
Rails.application.credentials.secret_key_base
查看所有
Rails.application.credentials.config
可以删掉 production.key(但要备份)。
总结
开发环境
- 使用 master.key 和 credentials.yml.enc
- master.key 被 git ignore
- 如果 .enc 不被 git ignore,那就多人共用 master.key
- 如果 .enc 要被 git ignore,那就每个人创建自己的 master.key
生产环境
- 使用 production.key 和 production.yml.enc
- production.key 被 git ignore,内容写到环境变量
- .env 不被 git ignore
- 读取 key 们的代码跟开发环境一模一样
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- Ruby 应用 Docker 容器化实战:从环境搭建到镜像构建
- 时间:2026-08-27
-
- Ruby 使用 Capistrano 进行部署
- 时间:2026-08-25
-
- Ruby CI/CD 管道怎么搭:从 Git、测试到自动部署的完整入门
- 时间:2026-08-25
-
- Ruby 项目如何配置 GitHub Actions:从基础 CI 到多版本测试
- 时间:2026-08-25
-
- Ruby 安全性最佳实践
- 时间:2026-08-25
-
- Ruby 安全编码指南:从常见漏洞到项目基线
- 时间:2026-08-25
-
- Ruby 常见攻击防范指南:从输入验证到会话与 HTTPS 加固
- 时间:2026-08-24
-
- Ruby 使用 HTTPS:从 net/http 到响应处理的实用写法
- 时间:2026-08-24
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15


