如何使用SSL设置Docker Redis容器
我正在关注本教程。
就我而言,我在Docker环境中运行,并且有一个受保护的站点(即https://
localhost)。这需要安全的SSL通信。
我调整了 网络 和 celery 容器以确保安全连接。
但是我不知道如何配置Redis容器以实现与ssl的安全连接。
请注意,当我在 Web 和 celery 容器中没有ssl连接的情况下运行时,连接就可以了。
谢谢
我按照本教程设置ssl的redis,并按照本教程通过Docker容器中的stunnel设置ssl的redis。
redis-cli
通过使用来自本地主机的以下调用,从本地主机(通过stunnel)调用redis docker容器,我成功地测试了从本地主机到redis
docker容器的连接:
redis-cli -h 127.0.0.1 -p 6381127.0.0.1:6381> auth foobared
OK
127.0.0.1:6381>
docker-compose文件 (我的webapp包含多个服务,但为简化起见,我删除了redis容器以外的所有服务):
version: '3'services:
redis:
build:
context: ./redis
dockerfile: Dockerfile
restart: always
command: sh -c "stunnel /stunnel_take2.conf && /usr/local/bin/redis-server /etc/redis/redis.conf"
expose:
- '6379'
ports:
- "6379:6379"
volumes:
- /home/avner/avner/certs:/etc/certs
- /home/avner/avner/redis/conf:/etc/redis
Redis容器Dockerfile
FROM redis:5-alpineRUN apk add --no-cache \
stunnel~=5.56 \
python3~=3.8
COPY stunnel-redis-server.conf /
WORKDIR /
ENV PYTHONUNBUFFERED=1
Redis服务器Redis conf文件 -redis / conf / redis.conf
...requirepass foobared
...
Redis服务器Stunnel conf文件 -Redis / stunnel-redis-server.conf
cert = /etc/certs/private.pempid = /var/run/stunnel.pid
[redis]
accept = 172.19.0.2:6380
connect = 127.0.0.1:6379
Redis客户端隧道conf文件-/etc/stunnel/redis-client.conf
cert = /etc/cert/private.pemclient = yes
pid = /var/run/stunnel.pid
[redis]
accept = 127.0.0.1:6381
connect = 172.19.0.2:6380
回答:
Redis本身并不提供SSL,您必须自己做。有一篇关于它的深入文章,您可以阅读和关注。或者,如果您想使用Dockerized解决方案,则可以使用像this或this这样的现成映像。要将Celery设置为可通过SSL与Redis一起使用时,只需遵循文档即可。
以上是 如何使用SSL设置Docker Redis容器 的全部内容, 来源链接: utcz.com/qa/421369.html