我在运输和休息时用Encyption设置了redishttps://dev.to/yuki0417/easy-way-to-connect-to-amazon-elasticache-redis-with-password-from-django-app-40il以及使用In-Transit加密连接到AWS ElastiCache。我正在使用https://github.com/Suor/django-cacheops没有显示任何关于ssl的内容。如何实现ssl以使用加密的aws-redis?
我试过
CACHEOPS_REDIS = {
'host': "redis://{}".format(os.environ.get("REDIS_LOCATION")),
'socket_timeout': 3,
'ssl': True,
}
阅读以下内容后https://github.com/jazzband/django-redis/issues/353我试过了,但它仍然不起作用
CACHEOPS_REDIS = {
'host': "rediss://{}/0".format(os.environ.get("REDIS_LOCATION")),
'socket_timeout': 3,
}
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": CACHEOPS_REDIS,
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"IGNORE_EXCEPTIONS": True,
'CONNECTION_POOL_KWARGS': {
'skip_full_coverage_check': True,
"ssl_cert_reqs": None,
"ssl": True
}
},
"KEY_PREFIX": ENVIRONMENT
}
}
中的证书
我有以下
$ ll /etc/ssl/certs/
total 12
lrwxrwxrwx 1 root root 49 Sep 22 17:47 ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
lrwxrwxrwx 1 root root 55 Sep 22 17:47 ca-bundle.trust.crt -> /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
您需要定义ssl证书的路径。此示例适用于Ubuntu
CACHES = {
"default": {
# …
"OPTIONS": {
"CONNECTION_POOL_KWARGS": {
"ssl_ca_certs": "/etc/ssl/certs/ca-certificates.crt",
},
},
},
}
您可以通过以下代码(MacOS示例响应(定义在目标操作系统上的何处查找证书
import certifi
certifi.where()
就我而言,我并没有使用云Redis——等待请求-响应周期的时间太长了。如果这是一个缓存,请找到一种方法来使用本地安装的缓存或在安全组中共享它。只有少数类型的项目真正需要在SSL或云Redis上使用Redis。