如何使用ssl设置Docker redis容器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用ssl设置Docker redis容器相关的知识,希望对你有一定的参考价值。
我正在关注this教程。
就我而言,我在Docker环境中运行,并且我有一个安全的站点(即https://localhost)。需要安全的ssl通信。
我已调整web和celery容器以进行安全连接。但是我不知道如何配置Redis容器与ssl进行安全连接请注意,当我在web和celery容器中没有ssl连接的情况下运行时,连接很好。
我如何使用ssl配置和运行redis?
谢谢
编辑:
[我遵循this教程使用ssl设置redis,this教程通过Docker容器中的stunnel使用ssl设置redis。
通过使用来自本地主机的以下调用,通过从本地主机(通过通道)调用redis-cli
到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>
redis服务器Docker端上的相关文件:
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服务器路径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,您必须自己做。有关于它的in-depth post,您可以阅读和关注。或者,如果您想使用Dockerized解决方案,则可以使用this one或this one之类的可用映像。设置Celery以通过SSL与Redis一起使用时,只需遵循documentation。
以上是关于如何使用ssl设置Docker redis容器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Docker 容器中向 Tomcat 添加 SSL 证书?