我在vapor
中看到,这个crypto.json
是使用vapor toolbelt
创建的任何项目的一部分
{
"hash": {
"method": "sha256",
"key": "password"
},
"cipher": {
"method": "chacha20",
"key": "passwordpasswordpasswordpassword",
"iv": "password"
}
}
是否应该更新其中任何一个以进行部署?
是的,绝对不要使用默认密码或哈希密钥部署应用程序。对此有两种解决方案。
1:机密文件夹
您可以通过在secrets
文件夹中提供crypto.json
来轻松执行此操作。
Config/secrets/crypto.json
{
"hash": {
"method": "sha256",
"key": "<16 characters>"
},
"cipher": {
"method": "aes256",
"key": "<32 characters>"
}
}
默认情况下,Config/secrets
文件夹位于.gitignore
中,不应提交到版本控制。
2:配置中的环境变量
如果很难将Config/secrets/crypto.json
文件添加到生产服务器,则可以改用环境变量。
Config/production/crypto.json
{
"hash": {
"method": "sha256",
"key": "$HASH_KEY"
},
"cipher": {
"method": "aes256",
"key": "$CIPHER_KEY"
}
}
此文件不包含密钥,可以安全地提交到版本控制。
只要确保你运行你的应用程序是--env=production
(由于许多其他原因,包括性能,你应该已经在这样做了)