Mqtt/tcp keepalive when proxying websocket

That’s right. HTTP is used to set up the initial handshake/connection (it’s convenient), then it gets switched to a duplex TCP pipe.

You can configure client certificate verification in Caddy, actually. See the client_auth config in the tls directive:

But point taken, probably easier to avoid proxying in this case :man_shrugging: