diff --git a/scripts/policy/frameworks/management/controller/config.zeek b/scripts/policy/frameworks/management/controller/config.zeek index 9fe10edaa6..0f202ccc78 100644 --- a/scripts/policy/frameworks/management/controller/config.zeek +++ b/scripts/policy/frameworks/management/controller/config.zeek @@ -61,6 +61,14 @@ export { ## for websocket clients. const default_port_websocket = 2149/tcp &redef; + ## TLS options for the controller's WebSocket server. The default is + ## to operate unencrypted. To replicate Broker's default encryption + ## without endpoint validation, set the + ## :zeek:field:`Cluster::WebSocketTLSOptions$ca_file` field to + ## "NONE" and :zeek:field:`Cluster::WebSocketTLSOptions$ciphers` to + ## "AECDH-AES256-SHA@SECLEVEL=0:AECDH-AES256-SHA:P-384". + const tls_options_websocket = Cluster::WebSocketTLSOptions() &redef; + ## Whether the controller should auto-assign Broker listening ports to ## cluster nodes that need them and don't have them explicitly specified ## in cluster configurations. diff --git a/scripts/policy/frameworks/management/controller/main.zeek b/scripts/policy/frameworks/management/controller/main.zeek index 19135149bf..48a6871e8d 100644 --- a/scripts/policy/frameworks/management/controller/main.zeek +++ b/scripts/policy/frameworks/management/controller/main.zeek @@ -1646,7 +1646,8 @@ event zeek_init() if ( cni$bound_port != 0/unknown ) { local ws_opts = Cluster::WebSocketServerOptions($listen_addr=to_addr(cni$address), - $listen_port=cni$bound_port); + $listen_port=cni$bound_port, + $tls_options=Management::Controller::tls_options_websocket); Cluster::listen_websocket(ws_opts); websocket_info = fmt("websocket port %s:%s", cni$address, cni$bound_port); }