This commit is contained in:
薇薇安 2026-01-18 10:28:09 +08:00
parent 39bd335ee7
commit c035fd8624

View File

@ -100,6 +100,7 @@ class ConfigManager:
logger.info(f"已自动转换Redis URL为TLS格式: {redis_url}")
# 解析Redis URL
<<<<<<< Current (Your changes)
if redis_url.startswith('rediss://') or redis_use_tls:
# TLS连接
import ssl
@ -119,6 +120,42 @@ class ConfigManager:
password=redis_password,
decode_responses=True
)
=======
# redis-py的同步客户端也支持通过ssl_cert_reqs等参数配置TLS
# 当URL是rediss://时会自动启用SSL
connection_kwargs = {
'username': redis_username,
'password': redis_password,
'decode_responses': True
}
if redis_url.startswith('rediss://') or redis_use_tls:
# TLS连接 - 使用redis-py支持的SSL参数
# 从环境变量获取SSL配置如果未设置使用默认值
ssl_cert_reqs = os.getenv('REDIS_SSL_CERT_REQS', 'required')
ssl_ca_certs = os.getenv('REDIS_SSL_CA_CERTS', None)
# 设置SSL参数
connection_kwargs['ssl_cert_reqs'] = ssl_cert_reqs
if ssl_ca_certs:
connection_kwargs['ssl_ca_certs'] = ssl_ca_certs
# 根据ssl_cert_reqs设置主机名验证
if ssl_cert_reqs == 'none':
connection_kwargs['ssl_check_hostname'] = False
elif ssl_cert_reqs == 'required':
connection_kwargs['ssl_check_hostname'] = True
else: # optional
connection_kwargs['ssl_check_hostname'] = False
logger.info(f"使用 TLS 连接 Redis: {redis_url} (ssl_cert_reqs={ssl_cert_reqs})")
# 创建Redis客户端同步
self._redis_client = redis.from_url(
redis_url,
**connection_kwargs
)
>>>>>>> Incoming (Background Agent changes)
# 测试连接
self._redis_client.ping()