我正在尝试配置HAproxy,使其将http流量重定向到https,但Chrome失败并返回"ERR_SSL_PROTOCOL_ERROR“。但是,如果我直接使用https,它将会工作。
例如:如果我输入https://:5443,它将显示后端服务器的页面。如果我输入了http://:5006,它应该被重定向,但却失败了,出现了上面提到的错误。
下面是我的配置:
frontend simple_webapp
mode http
bind *:5006
bind *:5443 ssl crt /root/Downloads/simple_webapp_all.pem
http-request redirect scheme https unless { ssl_fc }
default_backend simple_webapp
backend simple_webapp
balance roundrobin
server centos8-1 <server ip1>:5006 check
server centos8-2 <server ip2>:5006 check如果有任何配置错误,请纠正我。
发布于 2021-09-18 11:17:31
您可能希望使用scheme更改端口,但事实并非如此,您对http://foo:5006/的请求被重定向到不支持https://foo:5006的SSL。如果您在URL中省略了端口,那么浏览器和web客户端就足够智能,可以将端口80用于HTTP,将443用于HTTPS。这就是它适用于默认端口的原因。因此,尝试将您的重定向更改为如下所示:
http-request redirect prefix https://your_domain_as_explicit_string:5443 unless { ssl_fc }您可以尝试使用头文件,例如
http-request redirect prefix https://%[hdr(host),regsub(:5006,:5443)] unless { ssl_fc }在本例中,hdr(host)包括:5006,因此使用regsub更改了这一点
发布于 2021-09-19 03:01:15
一旦我将端口从5006改为其他端口,它就可以正常工作。不知道这个港口发生了什么。
https://stackoverflow.com/questions/69232221
复制相似问题