我使用resty.http module。但是使用了数据。对于通常的http或https而不进行验证都可以。
local http = require("resty.http").new()
local res, err = http:request_uri(url, {
method = method,
headers = headers,
body = body,
ssl_verify = false
})
但如果我不使用ssl_verify
,则无法使用错误:
lua ssl证书验证错误:(20:无法获得本地发行人 证书),
我发现使用Google lua_ssl_trusted_certificate
可以提供帮助。但我不知道它是如何起作用的。我测试了这样的命令:lua_ssl_trusted_certificate /etc/ssl/certs/GlobalSign_Root_CA.pem;
但它对我没有帮助。
如何以正确的方式验证https?
答案 0 :(得分:0)
在您的nginx.conf中,您需要配置
lua_ssl_verify_depth 2;
lua_ssl_trusted_certificate /pathto-ca-certs.pem;
在我的情况下,我的服务器只调用一个外部HTTPS端点。所以我导出了带有完整链的证书(通过Firefox中的borwser ceritificate导出)并导入到PEM文件中。这是我上面提供的.pem文件。
我使用lua-resty-http来调用https,它运行正常。您可以使用wireshark / fiddler等工具来监控传出连接,以查看是否按照您的方式进行请求。