【发布时间】:2018-11-01 19:23:24
【问题描述】:
我正在尝试创建一个用于内部测试的路由器。我正在使用 openresty 图像 RESTY_CONFIG_OPTIONS_MORE。由于我们从客户端发送的消息是二进制的并且没有任何请求标头,因此我们试图从证书中提取颁发者和序列号并将它们设置为请求标头。 我们希望使用这些标头路由到我们的测试服务器,而不是根据标头值进行生产。
我的 dockerfile 像这样抓取它:
ENV RESTY_CONFIG_OPTIONS_MORE "--with-ngx_http_ssl_module"
我已经在服务器块中尝试了以下方法,但没有成功:
rewrite_by_lua_block {
ngx.req.set_header("x-issuer", ngx.var.ssl_client_i_dn)
}
作者提到envsubst 实用程序包含在除 alpine 和 windows 之外的所有图像中。这与我的问题有什么关系吗?
如果仅附加配置选项不起作用,您认为哪个是最佳选择?
- 使用 nginx-ssl-variables 看起来完全符合我们的要求:https://github.com/Seb35/nginx-ssl-variables
- 修改 openresty 代码以构建我们自己的图像,增强 ngx.ocsp 模块以使证书作为
ngx.var.ssl_client_raw_cert in rewrite_by_lua_block可用 - 修改 openresty 代码以构建我们自己的覆盖 SSL 握手的映像
- 以上的一些组合
- 其他?
【问题讨论】:
-
“由于我们从客户端发送的消息是二进制的并且没有任何请求标头,” 那么听起来您正在混合 HTTP 和.. . 不是 HTTP。 HTTP 需要一组最少的请求标头。
标签: ssl nginx lua ssl-certificate openresty