lua nginx ssl证书设置
问题描述:
我使用resty.http module。但是使用了这些数据。对于通常的http或https没有验证的所有作品。lua nginx ssl证书设置
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?
答
在你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这样的工具来监控传出连接,以查看请求是否以您想要的方式进行。
证书通常是'.crt'文件 – hjpotter92
@ hjpotter92,lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;给出相同的错误行为 – Vyacheslav