Как настроить Docker контейнер Redis с помощью ssl - PullRequest
0 голосов
/ 16 февраля 2020

Я следую этому учебнику.

В моем случае я работаю в среде Docker, и у меня есть защищенный сайт (то есть https://localhost). который требует защищенной связи ssl.

Я настроил контейнеры web и сельдерей для безопасного соединения.
Но я не знаю, как настроить Redis Контейнер для безопасного соединения с ssl
Обратите внимание, что когда я запускаю без ssl-соединения в контейнерах web и celery , соединение в порядке.

Как настроить и запустить Redis с помощью SSL?

Спасибо


РЕДАКТИРОВАТЬ:

Я следовал это учебник по установке Redis с помощью ssl и этот учебник по настройке Redis с помощью SSL через stunnel в контейнере Docker.

Я успешно проверил соединение с локального хоста на Redis docker контейнера, вызвав redis-cli из localhost (через stunnel) в контейнер redis docker, используя следующий вызов из localhost:

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 - составить файл (мое веб-приложение включает в себя несколько служб, но для упрощения я удалил все службы, кроме контейнера 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 - 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

Связанные файлы на стороне клиента (localhost):

Файл конфигурации Redis клиента Stunnel - /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

1 Ответ

0 голосов
/ 17 февраля 2020

Redis не предоставляет SSL сам по себе, вы должны сделать это самостоятельно. Об этом есть подробный пост , который вы можете прочитать и подписаться. Или, если вы хотите использовать Dockerized решение, вы можете использовать готовые изображения, такие как это или это . Когда дело доходит до настройки Celery для работы с Redis через SSL, просто следуйте документации .

...