Horizon allows complete control for all the OpenStack resources. The communication that is going back and forth between the user's web browser and the Django web server serving Horizon dashboard contains sensitive information, such as user account passwords and environmental details revealing sensitive user information. The default configuration for Horizon allows an unencrypted, clear text communication channel to the Horizon Django web server. It is highly recommended to configure Horizon to encrypt the data going back and forth using the SSL/TLS protocol.
In this recipe, we will configure the Apache HTTPD server running the Django web service to use the SSL/TLS certificate to encrypt the communication channel, so all information going between the user and Horizon will be encrypted. We will also add a configuration to redirect users from unsecure port 80 to port 443 to use the secured HTTPS protocol.