如何使用SSL设置Docker Redis容器

我正在关注本教程。

就我而言,我在Docker环境中运行,并且有一个受保护的站点(即https://

localhost)。这需要安全的SSL通信。

我调整了 网络celery 容器以确保安全连接。

但是我不知道如何配置Redis容器以实现与ssl的安全连接。

请注意,当我在 Webcelery 容器中没有ssl连接的情况下运行时,连接就可以了。

谢谢


我按照本教程设置ssl的redis,并按照本教程通过Docker容器中的stunnel设置ssl的redis。

redis-cli通过使用来自本地主机的以下调用,从本地主机(通过stunnel)调用redis docker容器,我成功地测试了从本地主机到redis

docker容器的连接:

redis-cli -h 127.0.0.1 -p 6381

127.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-alpine

RUN 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.pem

pid = /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.pem

client = 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

回到顶部