Lua Nginx SSL证书设置

我使用了resty.http模块。 但是数据是使用的。对于通常的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 certificate verify error: (20: unable to get local issuer certificate),

我发现使用谷歌,lua_ssl_trusted_certificate可以提供帮助。但我不知道它如何帮助。我已经测试了这样的命令:lua_ssl_trusted_certificate /etc/ssl/certs/GlobalSign_Root_CA.pem;,但对我没有帮助。

如何以正确的方式验证HTTPS?

点赞
用户1006422
用户1006422

在您的 nginx.conf 文件中,您需要进行如下配置:

lua_ssl_verify_depth 2;
lua_ssl_trusted_certificate /pathto-ca-certs.pem;

在我的情况下,我的服务器仅调用一个外部 HTTPS 终端节点。因此,我通过 Firefox 的浏览器证书导出工具将证书和完整链路导出,导出到一个 PEM 文件中。这就是我提供的 .pem 文件。

我使用 lua-resty-http 来调用 https 并且它很好用。您可以使用类似 Wireshark /Fiddler 的工具来监视出站连接,以查看请求是否按照您的期望进行。

2016-09-21 22:57:26