Disable mTLS on Event Grid Namespaces port 443 for MQTT

Hunter Laux 10 Reputation points
2025-10-03T06:16:09.2033333+00:00

Typically when using MQTT via a WebSocket mTLS based authentication would not be appropriate. However, because mTLS is enabled Firefox will pop up a Window requesting to select or cancel the client certificate selection. I'd like to cancel and use JWT authentication. Cancel works, but the dialog is inappropriate and confusing. Chrome simply silent fails because websockets don't trigger chrome's certificate selection logic. You can workaround this by using an https request first prior to initiating the websocket request. Then Chrome will show the dialog, and you can cancel the certificate selection and proceed with JWT authentication. The problem is the certificate selection dialog leads to a lot of confusion.

There should be a way to disable mTLS on port 443, so that browsers don't request a certificate from the user. I would keep it enabled on 8883. The *.ts.eventgrid.azure.net host supports both the websocket MQTT and a TCP based MQTT. I only want to disabled mTLS for the websocket MQTT port, so it's usable in the browser.

Is there a way to disable mTLS on port 443?

Azure Event Grid
Azure Event Grid
An Azure event routing service designed for high availability, consistent performance, and dynamic scale.
{count} votes

1 answer

Sort by: Most helpful
  1. Alex Burlachenko 18,390 Reputation points Volunteer Moderator
    2025-10-03T08:24:45.0433333+00:00

    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
    

    https://ctrlaltdel.blog/


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.