跳转到内容

TLS 证书

生成 Redis TLS 自签证书 的 OpenSSL 脚本,仅供参考。推荐 OpenSSL >= 3.2(默认签发 X.509 v3)。

产出文件:ca.key ca.crt redis.key redis.crt

配合 Redis Docker 安装 使用:将证书拷到生成脚本中注明的 /data/redis-*/cert 目录。

SAN证书 CN有效天数
bash
# ================================================================
# Redis TLS 自签证书(推荐 OpenSSL >= 3.2,默认签发 X.509 v3)
# 产出: ca.key ca.crt redis.key redis.crt
# ================================================================

# ----------------------------------------------------------------
# 第一步:生成 CA(ca.key + ca.crt)
# ----------------------------------------------------------------
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha256 -days 36500 \
  -key ca.key -out ca.crt \
  -subj "/CN=Redis-CA/O=Redis" \
  -addext "basicConstraints=critical,CA:true" \
  -addext "keyUsage=critical,keyCertSign,cRLSign"

# ----------------------------------------------------------------
# 第二步:生成服务器私钥与 CSR(含 SAN)
# ----------------------------------------------------------------
openssl genrsa -out redis.key 4096
openssl req -new -sha256 -key redis.key -out redis.csr \
  -subj "/CN=redis/O=Redis" \
  -addext "subjectAltName=IP:127.0.0.1,DNS:localhost" \
  -addext "keyUsage=digitalSignature,keyEncipherment" \
  -addext "extendedKeyUsage=serverAuth,clientAuth"

# ----------------------------------------------------------------
# 第三步:CA 签发服务器证书
# ----------------------------------------------------------------
openssl x509 -req -sha256 -days 36500 \
  -in redis.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out redis.crt -copy_extensions copy

# ----------------------------------------------------------------
# 第四步:验证
# ----------------------------------------------------------------
openssl verify -CAfile ca.crt redis.crt
openssl x509 -in redis.crt -noout -text | grep -E 'Version|Subject:|Alternative|IP Address|DNS'