Question
Khi khởi tạo một project, Rails sẽ tự động tạo ra file credentials.yml.enc trong folder config. Khi click vào xem nội dung thì chỉ có mỗi một dòng hash dài ngoằng ngoẵng. Thế nó sinh ra để làm gì nhỉ 🤔
-
🌱 Từ sau Rails 5.2, khi init project sẽ tự động tạo file
config/credentials.yml.encchứa hash được mã hóa bởi aes-128-gcm để lưu những thông tin “nhạy cảm” của dự án. -
🌱 Rails sẽ dùng
config/master.keyhoặcENV["RAILS_MASTER_KEY"]để mã hóa nội dung. Vì đã được mã hóa nên fileconfig/credentials.yml.encvẫn có thể public, miễn là chúng ta không làm lộmaster keylà được. -
🌱 Mặc định file tạo ra sẽ chỉ lưu
secret_key_basecủa Rails app. Tuy nhiên chúng ta có thể edit thêm thông tin bằng command:
$ rails credentials:editInfo
📝 Câu lệnh trên sẽ tạo file config/credentials.yml.enc và config/master.key nếu chưa tồn tại hoặc chưa được định nghĩa.
Tìm hiểu thêm: rails credentials:help
- 🌱 Đọc thông tin mã hóa bằng câu lệnh:
> Rails.application.credentials
Danger
Tuyệt đối không được làm mất hay public master key!