在 Ubuntu 上部署 MongoDB 时,“加密”通常分为三种场景,你可以根据实际需求选择:
防止数据在网络中被窃听
sudo openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -out mongodb.csr
sudo openssl x509 -req -in mongodb.csr -signkey mongodb.key -out mongodb.crt
sudo cat mongodb.key mongodb.crt > mongodb.pem
sudo mv mongodb.pem /etc/ssl/
编辑 /etc/mongod.conf:
net:
port: 27017
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
sudo systemctl restart mongod
客户端连接:
mongosh --tls --host localhost
防止服务器被盗后数据泄露
仅 MongoDB Enterprise 支持
storage:
wiredTiger:
engineConfig:
encryption:
name: aes256
keyFile: /path/to/keyfile
适合社区版用户
sudo apt install cryptsetup
对数据盘加密后挂载到:
/var/lib/mongodb
最安全,数据库管理员也看不到明文
示例(Node.js):
const client = new MongoClient(uri, {
autoEncryption: {
keyVaultNamespace: "encryption.__keyVault",
kmsProviders: { local: { key: localKey } }
}
});
use admin
db.createUser({
user: "admin",
pwd: "强密码",
roles: ["root"]
})
/etc/mongod.conf:
security:
authorization: enabled
✅ Ubuntu LUKS 磁盘加密
✅ MongoDB TLS 传输加密
✅ 开启鉴权
✅ 敏感字段使用 CSFLE
如果你能告诉我:
我可以给你一套更精确的配置方案。