Orion currently has support for TLS client certificates, but it appears that this does not apply to a WSS (websocket secure) connection that the website initiates - it appears like the WSS connection fails, likely due to not sending the client certificate.
From the server-side, I can see that when using Firefox (or Safari), there are requests made to do the upgrade to websockets. These 3 requests are not seen by the server when using Orion.
2023/11/21 12:00:00.541 INFO http.log.access.log7 handled request {"request": {"remote_ip": "192.168.1.1", "remote_port": "60001", "client_ip": "192.168.1.1", "proto": "HTTP/1.1", "method": "GET", "host": "host.name.requiring.client.certs.net", "uri": "/websockify", "headers": {"Accept-Encoding": ["gzip, deflate, br"], "Sec-Gpc": ["1"], "Sec-Fetch-Dest": ["empty"], "Cache-Control": ["no-cache"], "Sec-Websocket-Extensions": ["permessage-deflate"], "Connection": ["keep-alive, Upgrade"], "Sec-Fetch-Mode": ["websocket"], "User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"], "Accept-Language": ["en-GB,en;q=0.5"], "Origin": ["https://host.name.requiring.client.certs.net"], "Sec-Websocket-Protocol": ["binary"], "Dnt": ["1"], "Pragma": ["no-cache"], "Accept": ["*/*"], "Sec-Websocket-Version": ["13"], "Sec-Websocket-Key": ["XXXXXXXXXX"], "Sec-Fetch-Site": ["same-origin"], "Upgrade": ["websocket"]}, "tls": {"resumed": false, "version": 772, "cipher_suite": 4865, "proto": "http/1.1", "server_name": "host.name.requiring.client.certs.net", "client_common_name": "client-cert-name", "client_serial": "7"}}, "bytes_read": 0, "user_id": "", "duration": 12.183233492, "size": 200001, "status": 101, "resp_headers": {"Date": ["Tue, 21 Nov 2023 12:00:00 GMT"], "Upgrade": ["websocket"], "Connection": ["upgrade"], "Sec-Websocket-Accept": ["XXXXXXXXXX"], "Sec-Websocket-Protocol": ["binary"], "Permissions-Policy": ["interest-cohort=()"]}}
2023/11/21 12:00:00.657 INFO http.log.access.log7 handled request {"request": {"remote_ip": "192.168.1.1", "remote_port": "60003", "client_ip": "192.168.1.1", "proto": "HTTP/1.1", "method": "GET", "host": "host.name.requiring.client.certs.net", "uri": "/files/socket.io/?EIO=4&transport=websocket&sid=XXXXXXXXXX", "headers": {"User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"], "Accept": ["*/*"], "Dnt": ["1"], "Connection": ["keep-alive, Upgrade"], "Accept-Language": ["en-GB,en;q=0.5"], "Sec-Fetch-Dest": ["empty"], "Accept-Encoding": ["gzip, deflate, br"], "Sec-Websocket-Version": ["13"], "Sec-Websocket-Extensions": ["permessage-deflate"], "Sec-Websocket-Key": ["XXXXXXXXXX"], "Sec-Gpc": ["1"], "Sec-Fetch-Site": ["same-origin"], "Upgrade": ["websocket"], "Origin": ["https://host.name.requiring.client.certs.net"], "Sec-Fetch-Mode": ["websocket"], "Pragma": ["no-cache"], "Cache-Control": ["no-cache"]}, "tls": {"resumed": false, "version": 772, "cipher_suite": 4865, "proto": "http/1.1", "server_name": "host.name.requiring.client.certs.net", "client_common_name": "client-cert-name", "client_serial": "7"}}, "bytes_read": 0, "user_id": "", "duration": 11.199132756, "size": 12, "status": 101, "resp_headers": {"Upgrade": ["websocket"], "X-Content-Type-Options": ["nosniff"], "X-Frame-Options": ["SAMEORIGIN"], "Sec-Websocket-Accept": ["XXXXXXXXXX"], "Date": ["Tue, 21 Nov 2023 12:00:00 GMT"], "Connection": ["upgrade"], "Permissions-Policy": ["interest-cohort=()"]}}
2023/11/21 12:00:00.658 INFO http.log.access.log7 handled request {"request": {"remote_ip": "192.168.1.1", "remote_port": "60002", "client_ip": "192.168.1.1", "proto": "HTTP/1.1", "method": "GET", "host": "host.name.requiring.client.certs.net", "uri": "/audio/socket.io/?EIO=4&transport=websocket&sid=XXXXXXXXXX", "headers": {"Connection": ["keep-alive, Upgrade"], "User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"], "Accept-Encoding": ["gzip, deflate, br"], "Origin": ["https://host.name.requiring.client.certs.net"], "Sec-Websocket-Key": ["XXXXXXXXXX"], "Pragma": ["no-cache"], "Cache-Control": ["no-cache"], "Upgrade": ["websocket"], "Accept": ["*/*"], "Accept-Language": ["en-GB,en;q=0.5"], "Sec-Websocket-Extensions": ["permessage-deflate"], "Sec-Fetch-Mode": ["websocket"], "Dnt": ["1"], "Sec-Fetch-Site": ["same-origin"], "Sec-Websocket-Version": ["13"], "Sec-Gpc": ["1"], "Sec-Fetch-Dest": ["empty"]}, "tls": {"resumed": false, "version": 772, "cipher_suite": 4865, "proto": "http/1.1", "server_name": "host.name.requiring.client.certs.net", "client_common_name": "client-cert-name", "client_serial": "7"}}, "bytes_read": 0, "user_id": "", "duration": 11.71981359, "size": 12, "status": 101, "resp_headers": {"Date": ["Tue, 21 Nov 2023 12:00:00 GMT"], "Referrer-Policy": ["same-origin"], "Upgrade": ["websocket"], "Permissions-Policy": ["interest-cohort=()"], "Sec-Websocket-Accept": ["XXXXXXXXXX"], "Connection": ["upgrade"]}}`
Expected behaviour is that Orion works like Safari or Firefox - it makes a client-certificate authenticated request to upgrade to websockets, and then has a client-cert authenticated exchange of websockets with the server.
Based on the above, it looks like websocket requests are not being made by Orion using the client certificate. Based on the browser console logs, it looks like the request fails, and I imagine the reason for that is that the request is not made using the TLS client certificate. I'm not seeing the request in my logs, as I think it's being dropped for not having a cert.

Version 0.99.126.3-rc
Sonoma (14)