Ubuntu环境下,MongoDB提供了多种数据加密方式,如传输层加密(TLS/SSL)以及存储层加密(例如加密存储引擎)。以下是配置这些加密方法的具体步骤:

传输层加密(TLS/SSL)
生成证书和密钥:
- 使用OpenSSL生成自签名证书或从CA获取证书。
- 生成密钥文件。
# 生成私钥
openssl genrsa -out mongodb-key.pem 2048
# 生成证书签名请求(CSR)
openssl req -new -key mongodb-key.pem -out mongodb-csr.pem -subj "/CN=localhost"
# 生成自签名证书
openssl x509 -req -days 365 -in mongodb-csr.pem -signkey mongodb-key.pem -out mongodb-cert.pem配置MongoDB:
- 编辑MongoDB配置文件(通常是
/etc/mongod.conf),添加或修改以下内容:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb-cert.pem
CAFile: /path/to/ca-cert.pem # 如果使用CA证书- 编辑MongoDB配置文件(通常是
重启MongoDB服务:
sudo systemctl restart mongod客户端连接:
- 使用
mongoshell或其他MongoDB客户端工具连接时,指定SSL选项:
mongo --ssl --sslCAFile /path/to/ca-cert.pem --sslPEMKeyFile /path/to/mongodb-cert.pem- 使用
存储层加密(加密存储引擎)
MongoDB支持使用加密存储引擎(如encryptionAtRest)来加密数据。以下是配置步骤:
启用加密存储引擎:
- 编辑MongoDB配置文件(通常是
/etc/mongod.conf),添加或修改以下内容:
security:
authorization: enabled
enableEncryption: true
encryptionCipherMode: AES256-CBC
keyFile: /path/to/mongodb-keyfile- 创建一个密钥文件:
openssl rand -base64 756 > /path/to/mongodb-keyfile
chmod 400 /path/to/mongodb-keyfile- 编辑MongoDB配置文件(通常是
重启MongoDB服务:
sudo systemctl restart mongod验证加密:
- 连接到MongoDB并检查加密状态:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'- 查看输出中的
encryptionCipherMode字段,确认加密已启用。
注意事项
- 密钥管理:确保密钥文件的安全,不要将其放在公共可访问的位置。
- 备份:在启用加密之前,确保已经备份了所有数据,因为加密和解密过程可能会影响性能。
- 客户端支持:确保所有客户端工具都支持所选的加密方法。
照此步骤操作,你就能在Ubuntu系统中为MongoDB配置好传输层加密和存储层加密,让数据安全性得以显著提升。