openssl证书生成
# 生成 CA 私钥
openssl genrsa -out redis_ca.key 2048
# 生成自签名的 CA 证书
openssl req -new -x509 -days 365 -key redis_ca.key -out redis_ca.crt -subj "/CN=Redis CA"
```
- redis_ca.key
是 CA 的私钥文件。
- redis_ca.crt
是 CA 的证书文件。
- -subj "/CN=Redis CA"
是 CA 的主体名称,你可以根据需要修改。
### 2. 生成客户端证书和私钥
#### (1) 生成客户端私钥
```bash
openssl genrsa -out redis_client.key 2048
```
#### (2) 生成客户端证书签名请求 (CSR)
```bash
openssl req -new -key redis_client.key -out redis_client.csr -subj "/CN=redis_client"
```
- redis_client.key
是客户端的私钥文件。
- redis_client.csr
是客户端的证书签名请求文件。
- -subj "/CN=redis_client"
是客户端证书的主体名称,你可以根据需要修改。
### 3. 使用 CA 签署客户端证书
```bash
openssl x509 -req -in redis_client.csr -CA redis_ca.crt -CAkey redis_ca.key -CAcreateserial -out redis_client.crt -days 365
```
- redis_client.csr
是客户端的证书签名请求文件。
- redis_ca.crt
是 CA 的证书文件。
- redis_ca.key
是 CA 的私钥文件。
- redis_client.crt
是生成的客户端证书文件。
- -days 365
表示证书有效期为 365 天。
- -CAcreateserial
会创建一个序列号文件(`redis_ca.srl`),用于跟踪签发的证书序列号。
### 4. 验证证书
验证生成的证书是否正确:
```bash
openssl verify -CAfile redis_ca.crt redis_client.crt
```
如果输出类似以下内容,则表示证书验证通过:
```
redis_client.crt: OK
```
### 5. 清理中间文件(可选)
如果你不需要保留中间文件(如 CSR 文件),可以删除它们:
```bash
rm redis_client.csr
```
### 最终文件列表
完成上述步骤后,你将拥有以下文件:
- redis_ca.key
:CA 的私钥文件。
- redis_ca.crt
:CA 的证书文件。
- redis_client.key
:客户端的私钥文件。
- redis_client.crt
:客户端的证书文件。
### 注意事项
1. 安全性:CA 私钥文件(`redis_ca.key`)非常重要,必须妥善保管,避免泄露。
2. 文件路径:确保在执行命令时,当前目录是存储这些文件的目录,或者使用绝对路径指定文件位置。
3. 有效期:可以根据需要调整证书的有效期(`-days` 参数)。
通过以上步骤,你可以完整地生成所需的证书和私钥,并为 Redis 配置 TLS。如果还有其他问题,请随时告诉我!
- 感谢你赐予我前进的力量