问题标签 [luasec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3637 浏览

windows - Lua for windows https 错误:“%1 不是有效的 Win32 应用程序”

我有一个关于 Lua 和 https 的问题。我正在为支持 Lua 的路由器开发一些软件。不好的是这个路由器不支持调试。所以我一直在寻找 Lua 的 IDE。

我在 Win 7 64 位操作系统上使用 Lua 开发工具和 LuaForWindows。到目前为止,一切都按原样进行。但现在我必须通过 https 调用一些 url。路由器本身有一个包 ssl.lua,你可以使用这个包和require ("ssl.https")语句。但我想用 Lua 开发工具调试它。我正在寻找与 Windows 兼容的软件包,并找到了“ Luasec ”项目。

正如这个线程“ Lua with the Freebase API ”中提到的那样;我已经下载了 Luasec

我已将ssl.lua和 ssl 文件夹放入我的 lua 安装中,我已将其放入 lua 安装ssl.dll中的 clibs 文件夹中。

为了测试,我只在我的 Lua 文件中执行了一个 require ("ssl.https"),但它崩溃了。它说:

我也在 Win 7 32 位电脑上对其进行了测试,但它会因此崩溃:

有人可以帮我完成这项工作吗?

0 投票
1 回答
3300 浏览

https - 我如何使用 LuaSec 在 HTTPS 中发送

在我的脚本中,我使用 LuaSocket 库来发送 XML 代码。这适用于以下代码:

但现在我将使用带有证书的协议 HTTPS 发送 XML。我知道我可以使用 LuaSec 但如何使用?有人可以告诉我,如何将代码修改为 HTTPS 的工作代码?

0 投票
1 回答
638 浏览

lua - Luasec - 使用 SMTP 通过 gmail 发送电子邮件

我尝试使用 luasec 连接到我的 gmail 帐户并通过 SMTP 发送电子邮件,虽然过了一段时间我能够允许不安全的应用程序连接,但我想了解如何通过 gmail 实现安全连接。

我使用了我在这里找到的以下代码,其中套接字连接在连接到 gmail 之前由 ssl 包装,但谷歌仍然说连接不安全。

我什至创建了一个自签名证书并将其用作 ssl 包装中的变量,但 gmail 仍然将连接标识为不安全。我们需要更改协议还是 luasec 库需要更新?

在那张纸条上,我也没有无法通过 hotmail/outlook.com 发送电子邮件

0 投票
1 回答
709 浏览

https - Lua - HTTPS / tlsv1 警报内部错误

我正在尝试使用 Lua与Cleverbot API进行交互。我有一个密钥和一个用户名,所以我用 Postman 进行了测试,它运行良好。然后我尝试对 Lua 做同样的事情,但我遇到了一个奇怪的错误。

这是代码:

但是,当我调用它时,这就是这 4 个打印显示的内容:

我尝试使用 HTTP 进行连接,但这就是发生的情况:

response总是空的。请问,我做错了什么?谢谢!

0 投票
2 回答
5724 浏览

https - 使用 Lua 获取 HTTPS 页面内容

我正在尝试从我的 lua 代码访问网页的内容。以下代码适用于非 HTTPS 页面

但是在 HTTPS 页面上,我收到以下错误。

您的浏览器发送了此服务器无法理解的请求。
原因:您对启用 SSL 的服务器端口使用纯 HTTP。
请改用 HTTPS 方案访问此 URL。

现在我做了我的研究,有些人建议使用 Luasec,但无论我尝试了多少,我都无法让它工作。此外,Luasec 是一个比我正在寻找的更复杂的库。我试图获取的页面仅包含一个 json 对象,如下所示:

0 投票
1 回答
58 浏览

https - 为什么 Web 服务器会回复 301 和请求的确切位置?

我正在尝试使用带有 luasec 的 lua 通过 https 从 Web 服务器检索页面。对于大多数页面,我的脚本按预期工作,但如果资源包含特殊字符(如,'é),我将被发送到带有 301 响应的循环中。

让这段代码片段说明我的困境(为保护无辜者而编辑了实际的服务器详细信息):

这导致了自相矛盾的

HTTP/1.1 301 Moved Permanently - GET was for "https://www.example.com/S%C3%A9ance" headers are { ["content-type"]="text/html; charset=UTF-8";["set-cookie"]="PHPSESSID=e80oo5dkouh8gh0ruit7mj28t6; path=/";["content-length"]="0";["connection"]="close";["date"]="Wed, 15 Mar 2017 19:31:24 GMT";["location"]="S%C3%A9ance";} body is "" equal HTTP/1.1 301 Moved Permanently - GET was for "https://www.example.com/S%C3%A9ance"

如何使用 lua 和尽可能少的附加依赖项来检索难以捉摸的页面?

0 投票
0 回答
121 浏览

https - 如何使用 https 为 Luasoap 设置超时

我正在开发一个 sdk 来连接到一个肥皂服务器。(在 https 下)

我使用 LuaSoap 来做到这一点,它的工作方式与 xml 请求一样,但现在我需要能够配置超时(我在在线支付行业,它非常重要),但我不知道如何在 LuaSoap 中做到这一点。

为了能够启用 https 请求,我按照 LuaSoap 文档的说明使用此代码

从这一点开始,我不知道该做什么或在哪里设置超时。

Tnx 为您提供帮助。

PD。

LuaSoap 使用 LuaSec 发送请求。

0 投票
1 回答
1476 浏览

lua - Luasec Luasocket https.request 与用户代理和返回正文

我想使用 LuaSec 使用自定义用户代理创建 https.request。我试过这里描述的方法:

https://github.com/brunoos/luasec/wiki/LuaSec-0.4#httpsrequesturl---body

但我不知道如何将 http 标头传递给此函数,同时避免将响应正文设置为数字 1,如下所述:

如果url是一个table,该函数返回相同的结果,除了响应的主体被替换为值1

如果我将请求更改为

我得到了响应正文,但是我不能再设置用户代理了。

谢谢你的帮助!

0 投票
1 回答
751 浏览

c++ - lua 5.3.5 + luasocket 3.0-rc1 + luasec 0.8:带有多个 luaopen_xxx_xxx 导出函数名的 WIN32 DLL

我在 Windows 7 64 位计算机上使用 Embarcadero C++Builder 10.1 32 位。我正在使用 Embarcadero IDE 的 CB10.1 32 位免费版本编译所有内容。我已将 lua 5.3.5 编译为 dll。然后我将 lua.c 编译成 DOS 可执行文件 lua.exe(使用 lua dll),它似乎运行正常。我将 luasocket 3.0rc1 编译为 2 个 dll(套接字和 mime)。

luasocket 脚本(ltn12.lua、mbox.lua、mime.lua 和 socket.lua)放置在“lua”文件夹中。其余的 luasocket 脚本('ftp.lua'、'headers.lua'、'http.lua'、'smtp.lua'、'tp.lua' 和 'url.lua')放在 'socket 文件夹中。'socket.dll' 重命名为 'core.dll' 并放置在 'socket' 文件夹中。'mime.dll' 被重命名为 'core.dll' 并放置在 'mime' 文件夹中。

我使用已编译的 lua.c + dll 从 DOS 提示符运行 lua。我可以正确地发出 http/ftp/smtp 请求。lua 似乎能够正确找到所有 luasocket core.dll 和 *.lua 脚本。

但是当我请求一个使用 https 的网页时,当 lua 尝试加载“https.lua”时,会出现模块未找到错误。

所以我正在尝试编译和安装 luaSec 0.8 和 OpenSSL 1.0.2s。

我想将 luaSec 编译为 WIN32 dll。我能够做到这一点。我根据需要使用“options.lua”创建了一个新的“options.h”。使用 DLL 依赖程序(Dependency Walker 2.2),我从 dll 中看到了四个导出函数:

dll 被重命名为 core.dll 并放置在“ssl”文件夹中。来自 luaSec 发行版的“https.lua”被放置在“ssl”文件夹中,“ssl.lua”被放置在“lua”文件夹中。

然后:

我的 lua 脚本需要 luasocket:

luasocket(在 http.lua 中)需要 luaSec:

然后 luaSec(在 https.lua 中)需要:

然后 luaSec(在 ssl.lua 中)需要:

'ssl.core' 的第一个要求有效。'ssl.context' 的第二个要求因“未找到模块 'ssl.context'”而失败。

如果我将 luaSec 编译成四个 dll(core.dll、context.dll、x509.dll 和 config.dll),使得每个 dll 只有一个导出函数并且该函数名与 require 语句匹配,那么 https 请求就可以工作。

我不清楚 lua 如何在 luaopen_ssl_x509、luaopen_ssl_context 和 luaopen_ssl_config 的“core.dll”中查看。也许 lua require() 函数只是不支持每个 dll 一个以上的导出函数。

我在任何地方都找不到这方面的任何指导。

0 投票
1 回答
252 浏览

lua - luasec 在 5.1 和 5.2 中失败,但在 5.3 中正常

我正在通过 LuaRocks 3.3.1 和 OpenSSL 1.1.1g(通过 MacPorts)安装 LuaSec 0.9。

我用luarocks install OPENSSL_DIR=/opt/local luasec

Lua 5.1、5.2 和 5.3 的编译/安装成功

但是,当我尝试使用它时,会出现错误,如下所示:

  1. 路亚 5.1
  • dlopen(/usr/local/lib/lua/5.1/ssl.so, 2): Symbol not found: _luaL_checkversion_
  1. 路亚 5.2
  • dlopen(/usr/local/lib/lua/5.2/ssl.so, 6): Symbol not found: _lua_rotate
  1. 路亚 5.3
  • 成功