# 加密与 TLS 配置

URL: https://caijiao.org/mongodb/07-security/04-encryption
Source: docs/mongodb/07-security/04-encryption.md
Description: 本章节介绍 MongoDB 的加密机制和 TLS 配置，确保数据传输和存储的安全性。

MongoDB 提供传输层加密（TLS/SSL）和存储加密，保障数据安全。

## 传输层加密（TLS/SSL）

TLS 加密保护客户端与服务器之间的数据传输，防止中间人攻击。

### 配置步骤

1. **生成或获取证书**  
   生成自签名证书或使用受信任的 CA 证书。

2. **修改配置文件**  
   在 `mongod.conf` 中添加：

   ```yaml
   net:
     tls:
       mode: requireTLS
       certificateKeyFile: /path/to/mongodb.pem
       CAFile: /path/to/ca.pem
   ````

* `mode` 可设置为 `disabled`（关闭）、`allowTLS`（允许）、`requireTLS`（强制）。
* `certificateKeyFile` 包含证书和私钥。
* `CAFile` 是证书颁发机构证书。

3. **重启 MongoDB 服务**

4. **客户端配置**
   客户端连接时需要指定证书，开启 TLS 连接。

## 存储加密（Encryption at Rest）

MongoDB Enterprise 支持数据在磁盘上的加密，防止数据泄漏。

* 使用 **Encrypted Storage Engine**，配置 `security.encryptionKeyFile`。
* 磁盘上的数据和日志均加密。

## 其他建议

* 使用强密码和密钥管理。
* 定期更新和审计证书。
* 配合防火墙和认证机制，提升整体安全。

---

通过配置 TLS 和存储加密，[MongoDB](/mongodb/) 能有效保障数据传输和存储的安全性。
