security - Lua redis 中转加密连接

标签 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()

干杯

最佳答案

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

{
    socket = <socket>
}

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

local ssl = require "ssl"
local socket = require "socket"
local redis = require "redis"
local config = {
    host = "xxxxxxxxxxxxxx",
    port = "6379",
    password = "XXXXXXXXXXXXXXX"
}
local params = {
    mode = "client",
    protocol = "tlsv1",
    verify = "none",
    options = "all",
}
local tcp_socket = socket.tcp()
tcp_socket:connect(config.host, config.port)
local conn  = ssl.wrap(tcp_socket, params)
conn:dohandshake()
local client = redis.connect({
    socket = conn
})
client:auth(config.password)
print(client:ping())

关于security - Lua redis 中转加密连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51012370/

相关文章:

api - `redis-cli info commandstats` 的编程 API

python - 从 Flash 客户端验证文件真实性而不泄露 key

android - BLE 设备每次与新设备绑定(bind)时是否会生成新的 LTK、CSRK 和 IRK?

c++ - 通过 Swig 在 C++ 和 Lua 之间传递变量

mysql - 将多行写入 Lua 中的文件

使用 SSL 时 Azure Redis 连接失败

node.js - Node-Redis psubscribe 带有自定义消息

c# - 如何在不知道密码的情况下获取另一个用户的 WindowsIdentity?

asp.net - 是否可以使 Page.IsPostBack 独立于 ASP.net 为真?

c - 我如何从C调用以self作为参数的lua函数?