Administrator
发布于 2024-11-06 / 30 阅读
0
0

连接开启传输加密(TLS)的AWS-Redis

说明:亚马逊云(aws)产品Amazon MemoryDB for Redis,使用TLS传输加密,只能在vpc内部使用ec2服务器连接,本地Windows电脑没有TLS命令。无法使用redis可视化工具连接。

下面是本地可视化工具连接aws-redis方法。

使用stunnel命令创建到 redis 节点的 SSL 隧道。然后,您可以使用 redis-cli 连接到从隧道,以便从加密的 Redis 节点访问数据。具体步骤如下所示:

在aws上找台ec2服务器, SSH登陆服务器,安装stunnel
1、sudo yum -y install stunnel

  1. 运行以下命令可同时创建和编辑'/etc/stunnel/redis-cli.conf'文件,以将一个 ElastiCache for Redis 集群终端节点添加到一个或多个连接参数,并将下面提供的输出用作模板:

    sudo vim /etc/stunnel/redis-cli.conf                
    fips = no
    setuid = root
    setgid = root
    pid = /var/run/stunnel.pid
    debug = 7 
    delay = yes
    options = NO_SSLv2
    options = NO_SSLv3
    [redis-cli]
    client = yes
    accept = 127.0.0.1:6379
    connect = master.ssltest.wif01h.use1.cache.amazonaws.com:6379
    [redis-cli-replica]
    client = yes
    accept = 127.0.0.1:6380
    connect = ssltest-02.ssltest.wif01h.use1.cache.amazonaws.com:6379
    

    注明:

  2. client设置为 yes 以指定此 stunnel 实例是客户端

  3. accept设置为客户端 IP。在此示例中,主 IP 设置为端口 6379 上的 Redis 默认 127.0.0.1。副本 必须调用另一个端口并设置为 6380。您可以使用临时端口 1024–65535。

  4. connect设置为 Redis 服务器终端节点

  5. 启动stunnel

    sudo stunnel /etc/stunnel/redis-cli.conf
    

    使用netstat命令确认隧道已启动

    sudo netstat -tulnp | grep -i stunnel               
    tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      3189/stunnel        
    tcp        0      0 127.0.0.1:6380              0.0.0.0:*                   LISTEN      3189/stunnel 
    
  6. 使用隧道的本地终端节点连接到加密的 Redis 节点

/home/ec2-user/redis-stable/src/redis-cli -h localhost -p 6379

  1. 要停止并关闭 SSL 隧道,请对 stunnel 过程执行pkill操作

sudo pkill stunnel

6、到此我们stunnel隧道已做好,下面就是直接在Windows上可视化工具连接。
这里有一个坑,我刚开始使用RDM连接redis,可以连接,但是无法查看数据,经过多方尝试,更换可视化客户端后正常。

7、如下图所示,连接redis服务器,命令行可用,但是db0无法显示数据。
image.png

8、多次尝试后,更换可视化工具可正常,正常使用可视化工具:Another Redis Desktop Manager。可以正常查看redis各项信息及数据。
image.png


评论