@@ -82,6 +82,10 @@ if is_service_enabled tls-proxy; then
8282 NOVA_SERVICE_PROTOCOL=" https"
8383fi
8484
85+ # Whether to use TLS for comms between the VNC/SPICE/serial proxy
86+ # services and the compute node
87+ NOVA_CONSOLE_PROXY_COMPUTE_TLS=${NOVA_CONSOLE_PROXY_COMPUTE_TLS:- False}
88+
8589# Public facing bits
8690NOVA_SERVICE_HOST=${NOVA_SERVICE_HOST:- $SERVICE_HOST }
8791NOVA_SERVICE_PORT=${NOVA_SERVICE_PORT:- 8774}
@@ -197,6 +201,13 @@ function is_n-cell_enabled {
197201 return 1
198202}
199203
204+ # is_nova_console_proxy_compute_tls_enabled() - Test if the Nova Console Proxy
205+ # service has TLS enabled
206+ function is_nova_console_proxy_compute_tls_enabled {
207+ [[ ${NOVA_CONSOLE_PROXY_COMPUTE_TLS} = " True" ]] && return 0
208+ return 1
209+ }
210+
200211# Helper to clean iptables rules
201212function clean_iptables {
202213 # Delete rules
@@ -524,6 +535,17 @@ function create_nova_conf {
524535 iniset $NOVA_CONF vnc server_proxyclient_address " $VNCSERVER_PROXYCLIENT_ADDRESS "
525536 iniset $NOVA_CONF vnc novncproxy_host " $NOVA_SERVICE_LISTEN_ADDRESS "
526537 iniset $NOVA_CONF vnc xvpvncproxy_host " $NOVA_SERVICE_LISTEN_ADDRESS "
538+
539+ if is_nova_console_proxy_compute_tls_enabled ; then
540+ iniset $NOVA_CONF vnc auth_schemes " vencrypt"
541+ iniset $NOVA_CONF vnc vencrypt_client_key " /etc/pki/nova-novnc/client-key.pem"
542+ iniset $NOVA_CONF vnc vencrypt_client_cert " /etc/pki/nova-novnc/client-cert.pem"
543+ iniset $NOVA_CONF vnc vencrypt_ca_certs " /etc/pki/nova-novnc/ca-cert.pem"
544+
545+ sudo mkdir -p /etc/pki/nova-novnc
546+ deploy_int_CA /etc/pki/nova-novnc/ca-cert.pem
547+ deploy_int_cert /etc/pki/nova-novnc/client-cert.pem /etc/pki/nova-novnc/client-key.pem
548+ fi
527549 else
528550 iniset $NOVA_CONF vnc enabled false
529551 fi
0 commit comments