Lua Redis在途加密连接

时间:2018-06-24 17:33:31

标签: security lua redis connection

我正在使用redis-lua模块。如何在lua脚本中连接到启用了传输功能的Redis服务器?我正在使用AWS弹性缓存,已启用in-transit encryption

下面给出了我用于与Redis实例连接而未启用传输中加密的Lua脚本,

local redis = require 'redis'
local client = redis.connect('127.0.0.1', 6379)
local response = client:ping()

在另一个node.js脚本中,我找到了一种解决方案,可以从以下位置连接到启用了传输加密的实例: Securing Node Redis

下面给出了我尝试过的代码。并且不能正常工作,但是,那里是否有可用的模块或任何可靠的解决方案。

local ssl = require "ssl"
local socket = require "socket"
local params = {
    mode = "client",
    protocol = "tlsv1",
    verify = "none",
    options = "all",
}
local tcp_socket = socket.tcp()
tcp_socket:connect("xxxxxxxxxx", "6379")
local conn  = ssl.wrap(tcp_socket, params)
conn:dohandshake()
conn:send("AUTH testing\n\n")
conn:send("SET test tcp\n\n")
local line, err = conn:receive()
print(err or line)
conn:close()

欢呼

1 个答案:

答案 0 :(得分:0)

redis-lua模块支持多种提供连接参数的方式。一种方法是在表中提供创建的套接字,例如,

const crypto = require('crypto')
const bytes = require('utf8-bytes')

function sha1(data) {
    const shasum = crypto.createHash('sha1')
    shasum.update(data)
    return shasum.digest('hex')
}

function shaGit(data) {
    const total_bytes = bytes(data).length
    return sha1(`blob ${total_bytes}\0${data}`)
}

要连接到启用了传输中加密的redis弹性缓存,

{
    socket = <socket>
}