当前位置: 首页 > 面试题库 >

如何使用SSL设置Docker Redis容器

夹谷岳
2023-03-14
问题内容

我正在关注本教程。

就我而言,我在Docker环境中运行,并且有一个受保护的站点(即https://
localhost
)。这需要安全的SSL通信。

我调整了 网络celery 容器以确保安全连接。
但是我不知道如何配置Redis容器以实现与ssl的安全连接。
请注意,当我在 Webcelery 容器中没有ssl连接的情况下运行时,连接就可以了。

如何使用SSL配置和运行Redis?

谢谢

编辑:

我按照本教程设置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>

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服务器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一起使用时,只需遵循文档即可。



 类似资料:
  • Secure Sockets Layer(SSL) 是一个通过网际网路传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 注意: 只限于 MySQL、PostgreSQL 和 MariaDB。 PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连 接 要提供验证信息,启用 使用验证 并填写所需的信息: 客户端密钥 用于创建一个安

  • Secure Sockets Layer(SSL) 是一个通过互联网传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 【注意】仅适用于 MySQL、PostgreSQL 和 MariaDB。PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连接 若要提供验证信息,启用“使用验证”并填写所需的信息: 客户端密钥文件 用于创建一个

  • Secure Sockets Layer(SSL) 是一个通过互联网传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 【注意】仅适用于 MySQL、PostgreSQL 和 MariaDB。PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连接 若要提供验证信息,启用“使用验证”并填写所需的信息: 客户端密钥 用于创建一个安全

  • Secure Sockets Layer (SSL) 是一个通过互联网传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 【注意】仅适用于 MySQL、PostgreSQL、MariaDB 和 MongoDB。PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连接 若要提供验证信息,启用“使用验证”并填写所需的信息: 客户端密钥

  • Secure Sockets Layer (SSL) 是一个通过互联网传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 【注意】仅适用于 MySQL、PostgreSQL、MariaDB 和 MongoDB。PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连接 若要提供验证信息,启用“使用验证”并填写所需的信息: 客户端密钥

  • Secure Sockets Layer (SSL) 是一个通过互联网传输私人文件的协定。为了安全连接,首先你需要做的是安装 OpenSSL 库和下载数据库源。 【注意】仅适用于 MySQL、PostgreSQL、MariaDB 和 MongoDB。PostgreSQL 8.4 或以上版本支持。 MySQL 和 MariaDB 连接 若要提供验证信息,启用“使用验证”并填写所需的信息: 客户端密钥