在CentOS上为MongoDB实现数据加密,可以采用以下几种方法:
MongoDB支持通过TLS/SSL加密客户端和服务器之间的通信。以下是配置步骤:
创建自签名证书(仅用于测试环境):
openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout mongodb-key.pem -out mongodb-cert.pem
创建CA证书(如果需要):
openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout ca-key.pem -out ca-cert.pem
将证书和密钥文件复制到MongoDB配置目录:
sudo cp mongodb-cert.pem /etc/pki/tls/certs/
sudo cp mongodb-key.pem /etc/pki/tls/private/
编辑MongoDB配置文件(通常是/etc/mongod.conf
),添加以下内容:
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/pki/tls/certs/mongodb-cert.pem
CAFile: /etc/pki/tls/certs/ca-cert.pem
sudo systemctl restart mongod
MongoDB Enterprise提供了内置的加密存储引擎,可以对数据进行透明加密。以下是配置步骤:
下载并安装MongoDB Enterprise:
wget https://repo.mongodb.org/yum/redhat/$releasever/mongodb-enterprise/4.4/x86_64/RPMS/mongodb-enterprise-4.4.0-1.el7.x86_64.rpm
sudo yum install mongodb-enterprise-4.4.0-1.el7.x86_64.rpm
启动MongoDB服务:
sudo systemctl start mongod
编辑MongoDB配置文件(通常是/etc/mongod.conf
),添加以下内容:
security:
authorization: enabled
keyFile: /var/lib/mongo/keyfile
encryption:
mode: requireEncryption
keyFile: /var/lib/mongo/keyfile
创建密钥文件并设置权限:
sudo openssl rand -base64 741 > /var/lib/mongo/keyfile
sudo chmod 400 /var/lib/mongo/keyfile
重启MongoDB服务:
sudo systemctl restart mongod
还可以使用第三方加密工具,如MongoDB Compass
或MongoDB Ops Manager
,来管理和加密数据。
安装MongoDB Compass:
wget https://downloads.mongodb.com/compass/mongodb-compass_1.24.0_amd64.deb
sudo dpkg -i mongodb-compass_1.24.0_amd64.deb
连接到MongoDB并启用加密: 在MongoDB Compass中,选择连接并启用TLS/SSL加密。
以上方法可以根据具体需求选择使用。对于生产环境,建议使用MongoDB Enterprise的加密存储引擎,以获得更好的安全性和管理功能。对于测试环境,可以使用自签名证书和TLS/SSL加密。