Okay, I've been through the instructions at least 3 times and cannot find why it's not working. Can someone please take a look? Other than it being currently disabled, obviously.Firewall rule is:IPv4 TCP Src* Port* Dest WAN address Port AliasforHTTP/HTTPS Gateway* Schedule*Code: [Select]## Automatically generated configuration.# Do not edit this file manually.### NOTE: HAProxy is currently DISABLED#global uid 80 gid 80 chroot /var/haproxy daemon stats socket /var/run/haproxy.socket group proxy mode 775 level admin nbproc 1 nbthread 2 hard-stop-after 60s no strict-limits maxconn 10000 tune.ssl.default-dh-param 4096 spread-checks 2 tune.bufsize 16384 tune.lua.maxmem 0 log /var/run/log local0 info lua-prepend-path /tmp/haproxy/lua/?.luadefaults log global option redispatch 1 maxconn 5000 timeout client 30s timeout connect 30s timeout server 30s retries 3 default-server init-addr last,libc# autogenerated entries for ACLs# autogenerated entries for config in backends/frontends# autogenerated entries for stats# Frontend: 0_SNI_Frontend ()frontend 0_SNI_Frontend bind 0.0.0.0:443 name 0.0.0.0:443 accept-proxy bind 0.0.0.0:80 name 0.0.0.0:80 accept-proxy mode tcp default_backend SSL_backend # tuning options timeout client 15m # logging options# Frontend: 1_HTTP_frontend ()frontend 1_HTTP_frontend bind 127.4.4.3:80 name 127.4.4.3:80 accept-proxy mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACL: NoSSL_condition acl acl_63859d8c6a7b81.10799804 ssl_fc # ACTION: HTTP_to_HTTPS http-request redirect scheme https code 301 if !acl_63859d8c6a7b81.10799804# Frontend: 1_HTTPS_frontend ()frontend 1_HTTPS_frontend http-response set-header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" bind 127.4.4.3:443 name 127.4.4.3:443 accept-proxy ssl curves secp384r1 no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384 ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 alpn h2,http/1.1 crt-list /tmp/haproxy/ssl/6385a4c7e68d06.81674833.certlist mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACTION: PUBLIC_SUBDOMAINS_map-rule # NOTE: actions with no ACLs/conditions will always match use_backend %[req.hdr(host),lower,map_dom(/tmp/haproxy/mapfiles/63859df5259306.89264162.txt)] # Backend: acme_challenge_backend (Added by ACME Client plugin)backend acme_challenge_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server acme_challenge_host 127.0.0.1:43580 # Backend: homeassistant_backend ()backend homeassistant_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server HomeAssistant 192.168.0.3:8123 check inter 30s port 8123 # Backend: web_backend ()backend web_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server web 192.168.0.4:80 # Backend: SSL_backend ()backend SSL_backend # health checking is DISABLED mode tcp balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s server SSL_Server 127.4.4.3 send-proxy-v2 check-send-proxy# Backend: factorio_backend ()backend factorio_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server factorio 192.168.0.17:80 # Backend: jira_backend ()backend jira_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server jira 192.168.0.20:80 # Backend: meshcentral_backend ()backend meshcentral_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server meshcentral 192.168.0.41:443 # Backend: nextcloud_backend ()backend nextcloud_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server nextcloud 192.168.0.38:443 ssl alpn h2,http/1.1 verify none# statistics are DISABLEDAnd the mapping file, which I have tried with the full FQDN and without the periods as well.Code: [Select]# public access subdomainshass. homeassistant_backendfactorio. factorio_backendjira. jira_backendmesh. meshcentral_backendnextcloud. nextcloud_backendweb_backend
## Automatically generated configuration.# Do not edit this file manually.### NOTE: HAProxy is currently DISABLED#global uid 80 gid 80 chroot /var/haproxy daemon stats socket /var/run/haproxy.socket group proxy mode 775 level admin nbproc 1 nbthread 2 hard-stop-after 60s no strict-limits maxconn 10000 tune.ssl.default-dh-param 4096 spread-checks 2 tune.bufsize 16384 tune.lua.maxmem 0 log /var/run/log local0 info lua-prepend-path /tmp/haproxy/lua/?.luadefaults log global option redispatch 1 maxconn 5000 timeout client 30s timeout connect 30s timeout server 30s retries 3 default-server init-addr last,libc# autogenerated entries for ACLs# autogenerated entries for config in backends/frontends# autogenerated entries for stats# Frontend: 0_SNI_Frontend ()frontend 0_SNI_Frontend bind 0.0.0.0:443 name 0.0.0.0:443 accept-proxy bind 0.0.0.0:80 name 0.0.0.0:80 accept-proxy mode tcp default_backend SSL_backend # tuning options timeout client 15m # logging options# Frontend: 1_HTTP_frontend ()frontend 1_HTTP_frontend bind 127.4.4.3:80 name 127.4.4.3:80 accept-proxy mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACL: NoSSL_condition acl acl_63859d8c6a7b81.10799804 ssl_fc # ACTION: HTTP_to_HTTPS http-request redirect scheme https code 301 if !acl_63859d8c6a7b81.10799804# Frontend: 1_HTTPS_frontend ()frontend 1_HTTPS_frontend http-response set-header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" bind 127.4.4.3:443 name 127.4.4.3:443 accept-proxy ssl curves secp384r1 no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384 ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 alpn h2,http/1.1 crt-list /tmp/haproxy/ssl/6385a4c7e68d06.81674833.certlist mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACTION: PUBLIC_SUBDOMAINS_map-rule # NOTE: actions with no ACLs/conditions will always match use_backend %[req.hdr(host),lower,map_dom(/tmp/haproxy/mapfiles/63859df5259306.89264162.txt)] # Backend: acme_challenge_backend (Added by ACME Client plugin)backend acme_challenge_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server acme_challenge_host 127.0.0.1:43580 # Backend: homeassistant_backend ()backend homeassistant_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server HomeAssistant 192.168.0.3:8123 check inter 30s port 8123 # Backend: web_backend ()backend web_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server web 192.168.0.4:80 # Backend: SSL_backend ()backend SSL_backend # health checking is DISABLED mode tcp balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s server SSL_Server 127.4.4.3 send-proxy-v2 check-send-proxy# Backend: factorio_backend ()backend factorio_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server factorio 192.168.0.17:80 # Backend: jira_backend ()backend jira_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server jira 192.168.0.20:80 # Backend: meshcentral_backend ()backend meshcentral_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server meshcentral 192.168.0.41:443 # Backend: nextcloud_backend ()backend nextcloud_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server nextcloud 192.168.0.38:443 ssl alpn h2,http/1.1 verify none# statistics are DISABLED
# public access subdomainshass. homeassistant_backendfactorio. factorio_backendjira. jira_backendmesh. meshcentral_backendnextcloud. nextcloud_backendweb_backend
## Automatically generated configuration.# Do not edit this file manually.#global uid 80 gid 80 chroot /var/haproxy daemon stats socket /var/run/haproxy.socket group proxy mode 775 level admin nbproc 1 nbthread 2 hard-stop-after 60s no strict-limits maxconn 10000 tune.ssl.default-dh-param 4096 spread-checks 2 tune.bufsize 16384 tune.lua.maxmem 0 log /var/run/log local0 info lua-prepend-path /tmp/haproxy/lua/?.luadefaults log global option redispatch 1 maxconn 5000 timeout client 30s timeout connect 30s timeout server 30s retries 3 default-server init-addr last,libc# autogenerated entries for ACLs# autogenerated entries for config in backends/frontends# autogenerated entries for stats# Frontend: 0_SNI_Frontend ()frontend 0_SNI_Frontend bind 0.0.0.0:443 name 0.0.0.0:443 accept-proxy bind 0.0.0.0:80 name 0.0.0.0:80 accept-proxy mode tcp default_backend SSL_backend # tuning options timeout client 15m # logging options# Frontend: 1_HTTP_frontend ()frontend 1_HTTP_frontend bind 127.4.4.3:80 name 127.4.4.3:80 accept-proxy mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACL: NoSSL_condition acl acl_63859d8c6a7b81.10799804 ssl_fc # ACTION: HTTP_to_HTTPS http-request redirect scheme https code 301 if !acl_63859d8c6a7b81.10799804# Frontend: 1_HTTPS_frontend ()frontend 1_HTTPS_frontend http-response set-header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" bind 127.4.4.3:443 name 127.4.4.3:443 accept-proxy ssl curves secp384r1 no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384 ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 alpn h2,http/1.1 crt-list /tmp/haproxy/ssl/6385a4c7e68d06.81674833.certlist mode http option http-keep-alive option forwardfor # tuning options timeout client 30s # logging options # ACTION: PUBLIC_SUBDOMAINS_map-rule # NOTE: actions with no ACLs/conditions will always match use_backend %[req.hdr(host),lower,map_dom(/tmp/haproxy/mapfiles/63859df5259306.89264162.txt,web_backend)] # Backend: acme_challenge_backend (Added by ACME Client plugin)backend acme_challenge_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server acme_challenge_host 127.0.0.1:43580 # Backend: homeassistant_backend ()backend homeassistant_backend # health checking is DISABLED mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s http-reuse safe server HomeAssistant 192.168.0.3:8123 # Backend: web_backend ()backend web_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server web 192.168.0.4:80 # Backend: SSL_backend ()backend SSL_backend # health checking is DISABLED mode tcp balance source # stickiness stick-table type ip size 50k expire 30m stick on src # tuning options timeout connect 30s timeout server 30s server SSL_Server 127.4.4.3 send-proxy-v2 check-send-proxy# Backend: factorio_backend ()backend factorio_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server factorio 192.168.0.17:80 # Backend: jira_backend ()backend jira_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server jira 192.168.0.20:80 # Backend: meshcentral_backend ()backend meshcentral_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server meshcentral 192.168.0.41:443 # Backend: nextcloud_backend ()backend nextcloud_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server nextcloud 192.168.0.38:443 ssl alpn h2,http/1.1 verify none# Backend: gallery_backend ()backend gallery_backend # health checking is DISABLED mode http balance source # tuning options timeout connect 30s timeout server 30s http-reuse safe server gallery 192.168.0.12:80 # statistics are DISABLED
# public access subdomainshass homeassistant_backendfactorio factorio_backendjira jira_backendmesh meshcentral_backendnextcloud nextcloud_backendgallery gallery_backend
If I attempt to browse to my IP from outside my network, http shows ERR_EMPTY_RESPONSE in Chrome, https shows ERR_CONNECTION_CLOSED.
If you don't even get any 503s with a blank white Page and the HAProxy Log is not indicating any traffic, then your firewall rule is configured wrong.Also if you are not willing to share the HAProxy log then I am unable to help. You have to set it to "Informational" in the top right corner!
root@OPNsense:~ # sockstat -l | grep '443\|80'www haproxy 3539 4 tcp4 *:443 *:*www haproxy 3539 5 tcp4 *:80 *:*www haproxy 3539 6 tcp4 127.4.4.3:80 *:*www haproxy 3539 7 tcp4 127.4.4.3:443 *:*
10:15:09.123024 IP PHONE.25700 > ROUTER.443: Flags [SEW], seq 642215500, win 65535, options [mss 1460,nop,wscale 12,sackOK,TS val 2478600365 ecr 0], length 010:15:09.123057 IP ROUTER.443 > PHONE.25700: Flags [S.E], seq 639098840, ack 642215501, win 65228, options [mss 1460,nop,wscale 7,sackOK,TS val 3059434307 ecr 2478600365], length 010:15:09.141384 IP PHONE.25700 > ROUTER.443: Flags [.], ack 1, win 256, options [nop,nop,TS val 2478600384 ecr 3059434307], length 010:15:09.142758 IP PHONE.25700 > ROUTER.443: Flags [P.], seq 1:518, ack 1, win 256, options [nop,nop,TS val 2478600384 ecr 3059434307], length 51710:15:09.142790 IP ROUTER.443 > PHONE.25700: Flags [.], ack 518, win 510, options [nop,nop,TS val 3059434328 ecr 2478600384], length 010:15:09.142818 IP ROUTER.443 > PHONE.25700: Flags [F.], seq 1, ack 518, win 514, options [nop,nop,TS val 3059434328 ecr 2478600384], length 010:15:09.161122 IP PHONE.25700 > ROUTER.443: Flags [.], ack 2, win 256, options [nop,nop,TS val 2478600404 ecr 3059434328], length 010:15:09.161149 IP PHONE.25700 > ROUTER.443: Flags [F.], seq 518, ack 2, win 256, options [nop,nop,TS val 2478600404 ecr 3059434328], length 010:15:09.161163 IP ROUTER.443 > PHONE.25700: Flags [.], ack 519, win 513, options [nop,nop,TS val 3059434346 ecr 2478600404], length 010:15:15.141831 IP PHONE.26438 > ROUTER.443: Flags [SEW], seq 3285634286, win 65535, options [mss 1460,nop,wscale 12,sackOK,TS val 4185299120 ecr 0], length 010:15:15.141883 IP ROUTER.443 > PHONE.26438: Flags [S.E], seq 4283526657, ack 3285634287, win 65228, options [mss 1460,nop,wscale 7,sackOK,TS val 95186048 ecr 4185299120], length 010:15:15.160570 IP PHONE.26438 > ROUTER.443: Flags [.], ack 1, win 256, options [nop,nop,TS val 4185299139 ecr 95186048], length 010:15:15.161943 IP PHONE.26438 > ROUTER.443: Flags [P.], seq 1:518, ack 1, win 256, options [nop,nop,TS val 4185299139 ecr 95186048], length 51710:15:15.161977 IP ROUTER.443 > PHONE.26438: Flags [.], ack 518, win 510, options [nop,nop,TS val 95186067 ecr 4185299139], length 010:15:15.162008 IP ROUTER.443 > PHONE.26438: Flags [F.], seq 1, ack 518, win 514, options [nop,nop,TS val 95186067 ecr 4185299139], length 010:15:15.181057 IP PHONE.26438 > ROUTER.443: Flags [.], ack 2, win 256, options [nop,nop,TS val 4185299159 ecr 95186067], length 010:15:15.181181 IP PHONE.26438 > ROUTER.443: Flags [F.], seq 518, ack 2, win 256, options [nop,nop,TS val 4185299159 ecr 95186067], length 010:15:15.181199 IP ROUTER.443 > PHONE.26438: Flags [.], ack 519, win 513, options [nop,nop,TS val 95186086 ecr 4185299159], length 0
Shouldn't the HAProxy log show startups as well? This is fresh after a reboot (empty log), restarting the HAProxy service from System, Diagnostics, Services (still empty), then unchecking Enable HAProxy and applying (Stop messages appear), then rechecking Enable HAProxy and applying (nothing new added).
2022-12-06T00:23:39 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:34677 to OPNSENSE_WAN_IP:443 (1_HTTPS_frontend/HTTP)2022-12-06T00:23:39 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:34677 to OPNSENSE_WAN_IP:443 (0_SNI_frontend/TCP)2022-12-06T00:23:39 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:9659 to OPNSENSE_WAN_IP:443 (1_HTTPS_frontend/HTTP)2022-12-06T00:23:39 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:9659 to OPNSENSE_WAN_IP:443 (0_SNI_frontend/TCP)2022-12-06T00:23:03 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:62798 to OPNSENSE_WAN_IP:443 (1_HTTPS_frontend/HTTP)2022-12-06T00:23:03 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:62798 to OPNSENSE_WAN_IP:443 (0_SNI_frontend/TCP)2022-12-06T00:23:01 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:62797 to OPNSENSE_WAN_IP:443 (1_HTTPS_frontend/HTTP)2022-12-06T00:23:01 Informational haproxy Connect from REMOTE_CLIENT_PUBLIC_IP:62797 to OPNSENSE_WAN_IP:443 (0_SNI_frontend/TCP)