I want my web application run only on port 4443. So i added this port to my docker container on Haproxy. Now i want to inspect the incoming request and if it is not https, it should redirect to it. Like: http:test.example.com:4443 -> https:test.example.com:4443. This only works if i bind the port without the ssl certificate.
If i bind it like this: bind *:4443 ssl crt /usr/local/etc/ssl/chaparron.ml.pem alpn h2 i get the error “https/1: SSL handshake failure” if i call http:test.example.com:4443 but there is no redirection.
How can i do this?
This is my haproxy.cfg right now
global
maxconn 50
tune.ssl.default-dh-param 2048
log stdout format raw local0
defaults
log global
mode http
timeout tunnel 1h
timeout http-request 100s
frontend https
mode http
bind *:4443 ssl crt /usr/local/etc/ssl/nextcloud.ml.pem alpn h2
http-request redirect scheme https code 301 if !{ ssl_fc }
default_backend nextcloud
timeout client 30s
backend nextcloud
mode http
timeout connect 20s
option http-server-close
server app1 app:80
timeout server 30s