ssl - HAProxy 将自定义标头中的标头值转发到后端
问题描述
我正在尝试将标头中收到的证书转发frontend
到backend
具有不同标头名称的证书中。但是,不会转发该值。我无法在文档中确定应该如何完成。
我正在尝试执行以下操作:
- 接收
ssl-client-cert
带有 Base64 编码证书的标头 X-CERTIFICATE
使用标头中的值设置新标ssl-client-cert
头- 将请求发送
X-CERTIFICATE
到后端
我现在的haproxy.cfg
样子是这样的:
global
log stdout format raw local0 debug
defaults
log global
timeout connect 5s
timeout client 1m
timeout server 1m
frontend api_gateway
mode http
bind :8080
http-request capture req.hdr(ssl-client-cert) len 64
acl PATH_api path_beg -i /api
use_backend core if PATH_api
default_backend fe
backend fe
mode http
server fe fe-service:80
backend core
mode http
http-request add-header X-CERTIFICATE %[capture.req.hdr(0)]
server core core-service:8080
解决方案
你可以试试这个。
http-request add-header X-CERTIFICATE -----BEGIN\ CERTIFICATE-----\ %[ssl_c_der,base64]\ -----END\ CERTIFICATE-----\ # don't forget last space
推荐阅读
- javascript - 如何用返回媒体 url 的函数替换 HTMLMediaElement.prototype.play
- reactjs - 防止 msal-react 多次加载组件
- windows - 如何在下拉列表CComboBox中设置项目的高度
- excel - 使用 VBA for chrome 的超链接
- python - Python 和 MySQL 数据打印
- arrays - 如何在scala中的另一个数组中使用一个数组,以便使用一个数组中的每个元素附加到另一个数组中的相应元素?
- javascript - 如果必须检查 JS 中的两个字段,如何使用条件运算符?
- python - 断言前的 Python 可选类型
- windows - Flutter 在 Mac 和 windows 的项目上工作
- javascript - 单击菜单中的链接时打开的下拉菜单适用于 PC 视图,但不适用于移动视图