Hi Hunter Laux,
the mTLS handshake on port 443 is causing a confusing user experience in browsers, and you're right, it's not appropriate for a websocket JWT flow.
unfortunately, for the azure event grid namespace service, the mTLS configuration is a global setting for the entire namespace. there is currently no way to disable mTLS on port 443 while keeping it enabled on port 8883. the security profile is applied to the namespace's FQDN, affecting all ports.
this is a known friction point for browser based MQTT over websockets clients. the client certificate prompt is a standard browser behavior when a server requests a certificate, even if the client never intends to provide one.
your workaround of making an initial HTTPS request to cache the 'cancel' decision in chrome is a clever one, but it's not a real solution.
your best course of action here is to provide this feedback directly to the azure event grid product group. this is a user experience limitation that they need to be aware of. you can use the 'feedback' option in the azure portal or post on the official azure feedback forums to request the ability to configure mTLS per port.
there is no setting to disable mTLS on port 443 only. your only option is to use the workarounds you've found and provide feedback to microsoft requesting this as a new feature.
regards,
Alex
and "yes" if you would follow me at Q&A - personaly thx.
P.S. If my answer help to you, please Accept my answer