I have cloned your repo and started the server (outside of Docker) and I cannot reproduce your issue. All 3 sites behave correctly for me.
Here is the output of the server info --verbose command
❯ server info --verbose
Looking for server JSON file by convention: C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\/server.json
webroot defaulted to location of server's JSON file: C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\
Test Site Bindings (stopped)
- site_a: https://127.0.0.1:8443 --> C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\a\
Bindings:
- 0.0.0.0:8443:*
- 0.0.0.0:8080:*
- site_b: https://127.0.0.1:8444 --> C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\b\
Bindings:
- 0.0.0.0:8444:*
- 0.0.0.0:8081:*
- site_c: https://127.0.0.1:8445 --> C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\c\
Bindings:
- 0.0.0.0:8082:*
- 0.0.0.0:8445:*
Listeners:
- HTTP
- 0.0.0.0:8082
- 0.0.0.0:8080
- 0.0.0.0:8081
- SSL
- 0.0.0.0:8445
- 0.0.0.0:8444
- 0.0.0.0:8443
CF Engine: lucee 7.0.1+100
Last Started: 16-Jan-2026 12:39:11
Here are relevant portion of the console output while starting the server with --trace:
| |------------------------------------------------------------------
| √ | Configuring site [site_a]
| |----------------------------------------
| | Site name - site_a
| | Webroot - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\a\
| | Site config file - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\/server.json
| | ------------------------------------------------------
| √ | Configuring site [site_b]
| |----------------------------------------
| | Site name - site_b
| | Webroot - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\b\
| | Site config file - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\/server.json
| | ------------------------------------------------------
| √ | Configuring site [site_c]
| |----------------------------------------
| | Site name - site_c
| | Webroot - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\c\
| | Site config file - C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\/server.json
| |----------------------------------------
and
[INFO ] Runwar: ******************************************************************************
[INFO ] Runwar: Starting Runwar
[INFO ] Runwar: - Runwar Version: 6.1.3
[INFO ] Runwar: - Java Version: 21.0.9+10-LTS (Eclipse Adoptium)
[INFO ] Runwar: - Java Home: C:\Users\brad\.CommandBox\serverJREs\openjdk21_jre_x64_windows_hotspot_jdk-21.0.9+10
[INFO ] Runwar: ******************************************************************************
[INFO ] Runwar: Listeners:
[INFO ] Runwar: - Binding HTTP on 0.0.0.0:8082
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[INFO ] Runwar: - Binding HTTP on 0.0.0.0:8081
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[INFO ] Runwar: - Binding HTTP on 0.0.0.0:8080
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[INFO ] Runwar: - Binding SSL on 0.0.0.0:8445
[DEBUG] Runwar: Creating SSL context from: runwar/runwar.keystore trust store: runwar/runwar.truststore
[DEBUG] Runwar: Loaded store: runwar/runwar.keystore
[DEBUG] Runwar: Loaded store: runwar/runwar.truststore
[TRACE] Runwar: Adding CN SNI host match of [localhost] for cert [CN=localhost, EMAILADDRESS=info@ortussolutions.com, O=Ortus Solutions, ST=TX, C=US]
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[INFO ] Runwar: - Binding SSL on 0.0.0.0:8444
[DEBUG] Runwar: Creating SSL context from: runwar/runwar.keystore trust store: runwar/runwar.truststore
[DEBUG] Runwar: Loaded store: runwar/runwar.keystore
[DEBUG] Runwar: Loaded store: runwar/runwar.truststore
[TRACE] Runwar: Adding CN SNI host match of [localhost] for cert [CN=localhost, EMAILADDRESS=info@ortussolutions.com, O=Ortus Solutions, ST=TX, C=US]
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[INFO ] Runwar: - Binding SSL on 0.0.0.0:8443
[DEBUG] Runwar: Creating SSL context from: runwar/runwar.keystore trust store: runwar/runwar.truststore
[DEBUG] Runwar: Loaded store: runwar/runwar.keystore
[DEBUG] Runwar: Loaded store: runwar/runwar.truststore
[TRACE] Runwar: Adding CN SNI host match of [localhost] for cert [CN=localhost, EMAILADDRESS=info@ortussolutions.com, O=Ortus Solutions, ST=TX, C=US]
[DEBUG] Runwar: Setting HTTP/2 enabled: true
[DEBUG] Runwar: ******************************************************************************
and
[INFO ] Runwar: ******************************************************************************
[INFO ] Runwar: Creating deployment [site_c]
[DEBUG] Runwar: Initialized MappedResourceManager
[INFO ] Runwar: Web Root: C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\c
[DEBUG] Runwar: New servlet context created for [site_c]
[DEBUG] Runwar: ******************************************************************************
[INFO ] Runwar: Creating deployment [site_b]
[DEBUG] Runwar: Initialized MappedResourceManager
[INFO ] Runwar: Web Root: C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\b
[DEBUG] Runwar: New servlet context created for [site_b]
[DEBUG] Runwar: ******************************************************************************
[INFO ] Runwar: Creating deployment [site_a]
[DEBUG] Runwar: Initialized MappedResourceManager
[INFO ] Runwar: Web Root: C:\Users\brad\Documents\GitHub\commandbox-6.3-test-site-bindings\sites\a
[DEBUG] Runwar: New servlet context created for [site_a]
[DEBUG] Runwar: ******************************************************************************
and
Undertow: Configuring listener with protocol HTTP for interface 0.0.0.0 and port 8082
Undertow: Configuring listener with protocol HTTP for interface 0.0.0.0 and port 8081
Undertow: Configuring listener with protocol HTTP for interface 0.0.0.0 and port 8080
Undertow: Configuring listener with protocol HTTPS for interface 0.0.0.0 and port 8445
Undertow: Configuring listener with protocol HTTPS for interface 0.0.0.0 and port 8444
Undertow: Configuring listener with protocol HTTPS for interface 0.0.0.0 and port 8443
When I hit the URL http://localhost:8080/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_a
[DEBUG] Runwar: requested: 'http://localhost:8080/'
and the following page appears:

When I hit the URL http://localhost:8081/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_b
[DEBUG] Runwar: requested: 'http://localhost:8081/'
and the following page appears:

When I hit the URL http://localhost:8082/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_c
[DEBUG] Runwar: requested: 'http://localhost:8082/'
and the following page appears:

When I hit the URL https://localhost:8443/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_a
[DEBUG] Runwar: requested: 'https://localhost:8443/'
and the following page appears:

When I hit the URL https://localhost:8444/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_b
[DEBUG] Runwar: requested: 'https://localhost:8444/'
and the following page appears:

When I hit the URL https://localhost:8445/ the following is output in the console
[TRACE] Runwar: Binding is for site: site_c
[DEBUG] Runwar: requested: 'https://localhost:8445/'
and the following page appears:
