通过ha或者nginx做证书卸载,emq怎么获取对端证书信息
通过ha或者ng做客户端证书校验与卸载,然后需要在emq中获取客户端证书CN,通过http接口认证将CN传入校验证书CN是否合法,现在就是想知道可不可以实现
不行,已经做了证书 卸载之后,emqx 就拿不到cn了。
将CN放入header中往后面传,emq能不能获取到header的数据,如果能获取,应该怎么获取
这个具体是怎么操作的
在ha上配置http-request set-header certCn %{+Q}[ssl_c_s_dn(cn)] if { ssl_c_used }获取客户端证书CN并放入header key=certCn中,emq有没有办法获取header中的数据
问了一下同事:
应该是直接
配置 HAProxy: 在 HAProxy 的 backend
配置中,为 server
指令添加 send-proxy-v2-options ssl-cn
。这会开启 PROXY Protocol v2,并将客户端证书的 CN (Common Name) 附加在协议头中发送给 EMQX。
backend emqx_tcp_backend
mode tcp
server emqx 127.0.0.1:1883 send-proxy-v2-options ssl-cn
在 dashboard 监听器中打开proxy_protocol
然后在认证中就能看到cert_subject cert_common_name 字段。
监听器中没有找到开启proxy_protocol的选项,具体是在哪里呢
是在监听器的自定义配置中配置吗
好的,非常感谢
认证的时候调用http接口,请求参数中如何获取这个值呢,还是${username}吗
添加监听器类型,选择tcp还是ssl呢
建议您看看我发在上面的文章,和官方的文档(官方的文档比我一两句的话详细清晰多了),不要凭感觉随便自己想然后随便点一下,然后又来问为什么不行。这样即浪费你的时间,也浪费我的。