Перенаправление на HTTPSLink to Перенаправление на HTTPS

Для работы веб-интерфейса Termidesk по безопасному протоколу HTTPS, используются настройки веб-сервера apache для перенаправления запроса с протокола HTTP на HTTPS. 

Перенаправление на HTPS настроено по умолчанию после установки Termidesk. При необходимости использования незащищенного протокола HTTP администратор должен изменить файл /etc/apache2/sites-available/termidesk.conf, раскомментировав настройки VirtualHost и закомментировав настройки HTTPS. Шаблон файла для протокола HTTP представлен ниже.

Настройки перенаправления задаются в конфигурационном файле /etc/apache2/sites-available/termidesk.conf. После внесения любых изменений в этот файл необходимо перезапустить службу apache2:

sudo systemctl restart apache2
BASH

Шаблон части конфигурационного файла для протокола HTTPS:

Представлены только шаблоны конфигурационного файла! Изменение конфигурации не должно выполняться копированием представленного шаблона.

# Сайт для принудительного перенаправления на протокол HTTPS.
<VirtualHost *:80>
        ServerName #HOSTNAME#
        RewriteEngine On
        RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=308,L]
        RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
	ServerName #HOSTNAME#
	DocumentRoot /opt/termidesk/share/termidesk-vdi/src

	Alias /media/ /opt/termidesk/share/termidesk-vdi/src/media/
	Alias /static/ /opt/termidesk/share/termidesk-vdi/src/static/

	<Directory /opt/termidesk/share/termidesk-vdi/src/static>
		Order deny,allow
		Allow from all
		Require all granted
	</Directory>

	<Directory /opt/termidesk/share/termidesk-vdi/src/media>
		Order deny,allow
		Allow from all
		Require all granted
	</Directory>

	RewriteEngine on
	ProxyTimeout 70
	ProxyPreserveHost On
	ProxyRequests Off

	ProxyPassMatch ^/media/ !
	ProxyPassMatch ^/static/ !

	ProxyPass / http://127.0.0.1:8000/
	ProxyPassReverse / http://127.0.0.1:8000/

	RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
	SSLEngine on
	SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
	SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key	
	
    RequestHeader set X-TDSK-SSL_CLIENT_FORMAT 'apache'
    RequestHeader set X-TDSK-SSL_CLIENT_S_DN expr=%{SSL_CLIENT_S_DN}
    RequestHeader set X-TDSK-SSL_CLIENT_VALIDITY_START expr=%{SSL_CLIENT_V_START}
    RequestHeader set X-TDSK-SSL_CLIENT_VALIDITY_END expr=%{SSL_CLIENT_V_END}
    RequestHeader set X-TDSK-SSL_CLIENT_VERIFY expr=%{SSL_CLIENT_VERIFY}
    RequestHeader set X-TDSK-SSL_CLIENT_CERT expr=%{SSL_CLIENT_CERT}
</VirtualHost>
</IfModule>
BASH

Шаблон части конфигурационного файла для работы по незащищенному протоколу HTTP (конфигурация HTTPS  при этом должна быть закомментирована):

<VirtualHost *:80>
	ServerName #HOSTNAME#
	DocumentRoot /opt/termidesk/share/termidesk-vdi/src
	
	Alias /media/ /opt/termidesk/share/termidesk-vdi/src/media/
	Alias /static/ /opt/termidesk/share/termidesk-vdi/src/static/
	
	<Directory /opt/termidesk/share/termidesk-vdi/src/static>
		Order deny,allow
		Allow from all
		Require all granted
	</Directory>
	
	<Directory /opt/termidesk/share/termidesk-vdi/src/media>
		Order deny,allow
		Allow from all
		Require all granted
	</Directory>
	
	RewriteEngine on
	ProxyTimeout 70
	ProxyPreserveHost On
	ProxyRequests Off
	
	ProxyPassMatch ^/media/ !
	ProxyPassMatch ^/static/ !
	
	ProxyPass / http://127.0.0.1:8000/
	ProxyPassReverse / http://127.0.0.1:8000/
	
	RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
	
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
BASH