Linux Lua:对https请求的权限被拒绝

问题描述

我一直在尝试使用Lua中的ssl.https库发送一个https请求,但是无论我提供什么url,我总是会被拒绝权限并且没有其他值(例如标头等)。我使用的linux是CentOS Linux版本7。

这是示例代码:

    local httpsocket = require("socket.http")
    local httpssocket = require ("ssl.https")
    local ltn12 = require("ltn12")

    local res,code,response_headers,status = httpssocket.request("https://www.google.com")
    
    module:log("info","%s %s",code.."",response_headers);

代码本身是prosody插件的一部分,本示例的最后一行将其打印出来:

    permission denied <nil>

我的问题是如何解决此问题,以便可以访问该页面?

编辑:看来问题可能出在运行该服务的用户上,并且需要root用户特权,否则它会为端口低于1024的端口抛出ACCES错误。有人知道在这种情况下该怎么做吗?

解决方法

所以...在再次尝试解决此问题后,我终于找到了解决方案。如果您遇到服务无法在 centOS 上发送 http/https 请求的问题,则必须运行一个命令来解决此问题:

setsebool -P nis_enabled 1

对于那些可能有类似问题但与我不完全相同的人,请查看 /var/log/audit/audit.log 以了解与您的程序、进程、服务等相关的任何内容,然后使用以下命令:

grep <pattern_to_match_specific_log> /var/log/audit/audit.log | audit2why

这会给你一个失败的原因以及如何修复它

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...