在Ubuntu下,MongoDB提供了多种数据加密选项,包括传输层加密(TLS/SSL)和存储层加密(如加密存储引擎)。以下是配置这些加密方法的步骤:
生成证书和密钥:
# 生成私钥
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:
/etc/mongod.conf),添加或修改以下内容:net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb-cert.pem
CAFile: /path/to/ca-cert.pem # 如果使用CA证书
重启MongoDB服务:
sudo systemctl restart mongod
客户端连接:
mongo shell或其他MongoDB客户端工具连接时,指定SSL选项:mongo --ssl --sslCAFile /path/to/ca-cert.pem --sslPEMKeyFile /path/to/mongodb-cert.pem
MongoDB支持使用加密存储引擎(如encryptionAtRest)来加密数据。以下是配置步骤:
启用加密存储引擎:
/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服务:
sudo systemctl restart mongod
验证加密:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
encryptionCipherMode字段,确认加密已启用。通过以上步骤,你可以在Ubuntu下为MongoDB配置传输层加密和存储层加密,从而提高数据的安全性。