Настройка доступа к VDI через HTTPS¶
Содержание
Важно
В случае одновременного использования HTTP и HTTPS конфигураций Apache требуется указывать для конфигурации HTTPS имена параметров WSGIDaemonProcess
и WSGIProcessGroup
, отличные от имен одноименных параметров в конфигурации HTTP. Например, tionix_vdi_server_ssl
для https и tionix_vdi_server_web для http
.
Создание сертификата¶
Создайте самоподписанный сертификат сроком на 10 лет:
openssl req -new -x509 -days 3650 -keyout tionix_ssl.key -out tionix_ssl.crt
Такой срок выбран во избежание повторных регулярных действий. Так как данный сертификат используется для тестирования, то урона безопасности нет.
Настройка¶
CentOS¶
Установите пакет c SSL-модулем для Apache:
yum install -y mod_ssl
Скопируйте файлы сертификата и ключа:
cp -f /opt/tionix-qa/conf/ssl/tionix_ssl.crt /etc/pki/tls/certs/tionix_ssl.crt cp -f /opt/tionix-qa/conf/ssl/tionix_ssl.key /etc/pki/tls/private/tionix_ssl.key
Создайте или скопируйте конфигурационный файл для Apache:
cp -f /opt/tionix-qa/centos/7/openstack/mitaka/conf/tionix-vdi-server-ssl.conf \ /etc/httpd/conf.d/tionix-vdi-server-ssl.conf
Содержание файла конфигурации
/etc/httpd/conf.d/tionix-vdi-server-ssl.conf
:Listen 8889 <VirtualHost *:8889> WSGIDaemonProcess tionix_vdi_server_ssl user=tionix group=tionix processes=3 threads=10 WSGIScriptAlias /vdi /usr/lib/python2.7/site-packages/tionix_vdi_server/wsgi.py WSGIProcessGroup tionix_vdi_server_ssl WSGIPassAuthorization On SSLEngine on SSLCertificateFile /etc/pki/tls/certs/tionix_ssl.crt SSLCertificateKeyFile /etc/pki/tls/private/tionix_ssl.key ErrorLog /var/log/httpd/tionix-vdi-server.log CustomLog /var/log/httpd/tionix-vdi-server-access.log combined <Directory /usr/lib/python2.7/site-packages/tionix_vdi_server> <Files wsgi.py> Require all granted </Files> </Directory> Alias /vdi/static /usr/lib/python2.7/site-packages/tionix_vdi_server/static/tionix_vdi_server <Directory /usr/lib/python2.7/site-packages/tionix_vdi_server/static/tionix_vdi_server> Require all granted </Directory> </VirtualHost>
Перезапустите HTTP-сервер:
systemctl restart httpd
Ubuntu¶
Включите поддержку модуля SSL для Apache:
a2enmod ssl
Скопируйте файлы сертификата и ключа:
cp -f /tmp/tionix-qa/conf/ssl/tionix_ssl.crt /etc/ssl/certs/tionix_ssl.crt cp -f /tmp/tionix-qa/conf/ssl/tionix_ssl.key /etc/ssl/private/tionix_ssl.key
Создайте или скопируйте файл конфигурации для Apache:
cp -f /tmp/tionix-qa/ubuntu/trusty/openstack/mitaka/conf/vdi/tionix-vdi-server-ssl.conf \ /etc/apache2/conf-available/tionix-vdi-server-ssl.conf
Содержание файла конфигурации
/etc/apache2/conf-available/tionix-vdi-server-ssl.conf
:Listen 8889 <VirtualHost *:8889> WSGIDaemonProcess tionix_vdi_server_ssl user=tionix group=tionix processes=3 threads=10 WSGIScriptAlias /vdi /usr/local/lib/python2.7/dist-packages/tionix_vdi_server/wsgi.py WSGIProcessGroup tionix_vdi_server_ssl WSGIPassAuthorization On SSLEngine on SSLCertificateFile /etc/ssl/certs/tionix_ssl.crt SSLCertificateKeyFile /etc/ssl/private/tionix_ssl.key ErrorLog /var/log/apache2/tionix-vdi-server.log CustomLog /var/log/apache2/tionix-vdi-server-access.log combined <Directory /usr/local/lib/python2.7/dist-packages/tionix_vdi_server> <Files wsgi.py> Require all granted </Files> </Directory> Alias /vdi/static /usr/local/lib/python2.7/dist-packages/tionix_vdi_server/static/tionix_vdi_server <Directory /usr/local/lib/python2.7/dist-packages/tionix_vdi_server/static/tionix_vdi_server> Require all granted </Directory> </VirtualHost>
Разрешите использование конфигурационного файла:
ln -sf /etc/apache2/conf-available/tionix-vdi-server-ssl.conf \ /etc/apache2/conf-enabled/tionix-vdi-server-ssl.conf
Перезапустите HTTP-сервер:
service apache2 restart
ALT Linux¶
Установите пакет c SSL-модулем для Apache:
apt-get install -y apache2-mod_ssl
Включите поддержку модуля SSL:
a2enmod ssl
Скопируйте файлы сертификата и ключа:
cp -f /opt/tionix-qa/conf/ssl/tionix_ssl.crt /etc/httpd2/conf/ssl.crt/tionix_ssl.crt cp -f /opt/tionix-qa/conf/ssl/tionix_ssl.key /etc/httpd2/conf/ssl.key/tionix_ssl.key
Создайте или скопируйте конфигурационный файл для Apache:
cp -f /opt/tionix-qa/altlinux/7/openstack/mitaka/conf/tionix/tionix-vdi-server-ssl.conf \ /etc/httpd2/conf/sites-available/tionix-vdi-server-ssl.conf
Содержание файла конфигурации
/etc/httpd2/conf/sites-available/tionix-vdi-server-ssl.conf
:Listen 8889 <VirtualHost *:8889> WSGIDaemonProcess tionix_vdi_server_ssl user=tionix group=tionix processes=3 threads=10 WSGIScriptAlias /vdi /usr/lib/python2.7/site-packages/tionix_vdi_server/wsgi.py WSGIProcessGroup tionix_vdi_server_ssl WSGIPassAuthorization On SSLEngine on SSLCertificateFile /etc/httpd2/conf/ssl.crt/tionix_ssl.crt SSLCertificateChainFile /path/to/intermediate_certificate SSLCertificateKeyFile /etc/httpd2/conf/ssl.key/tionix_ssl.key ErrorLog /var/log/httpd2/tionix-vdi-server.log CustomLog /var/log/httpd2/tionix-vdi-server-access.log combined <Directory /usr/lib/python2.7/site-packages/tionix_vdi_server> <Files wsgi.py> Allow from all </Files> </Directory> Alias /vdi/static /usr/lib/python2.7/site-packages/tionix_vdi_server/static/tionix_vdi_server <Directory /usr/lib/python2.7/site-packages/tionix_vdi_server/static/tionix_vdi_server> Allow from all </Directory> </VirtualHost>
Разрешите использование конфигурационного файла:
ln -sf /etc/httpd2/conf/sites-available/tionix-vdi-server-ssl.conf \ /etc/httpd2/conf/sites-enabled/tionix-vdi-server-ssl.conf
Перезапустите HTTP-сервер:
systemctl restart httpd2
Пример настройки¶
Пример настройки доступа к VDI через HTTPS с подписанными сертификатами.
Создание центра сертификации (СА)¶
Сгенерируйте корневой ключ центра сертификации:
openssl genrsa -out rootCA.key 4096
Сгенерируйте корневой сертификат центра сертификации:
openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
Где:
req
- менеджер запросов подписей;x509
- параметр для вывода самозаверяющего сертификата;new
- параметр для генерации нового запроса;rootCA.key
- наименование файла с ключом;3650
- срок действия сертификата в днях;rootCA.crt
- наименование файла, на который записывается сертификат.
Примечание
Более подробная информация доступна на сайте www.openssl.org.
Поля для ответов на дополнительные вопросы можно оставлять пустыми:
Важно
rootCA.crt
— можно копировать на сервера, выкладывать в публичный доступ;rootCA.key
— необходимо держать в тайне.
Создание сертификата¶
Создание и подпись сертификата центром сертификации.
Сгенерируйте ключ сервера:
openssl genrsa -out testeralt.stand.key 4096
Создайте запрос на сертификат:
openssl req -new -key testeralt.stand.key -out testeralt.stand.csr
В поле "Common Name" укажите домен или IP-адрес:
Подпишите запрос на создание корневым сертификатом:
openssl x509 -req -in testeralt.stand.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out testeralt.stand.crt -days 3650
Где:
x509
- утилита для подписи сертификатов;req
- параметр для обработки запроса на подпись сертификата;testeralt.stand.csr
- наименование файла сертификата для считывания;rootCA.crt
- наименование сертификата CA для подписи;rootCA.key
- наименование приватного ключа сертификата CA;CAreateserial
- параметр для создания серийного номера;testeralt.stand.crt
- наименование файла, на который записывается сертификат;3650
- срок действия сертификата в днях.
Настройка TIONIX.VDIserver¶
Примечание
Настройка TIONIX.VDIserver для работы с подписанными сертификатами выполняется аналогично разделу «Настройка».
Установка корневого сертификата¶
Установка выполняется в браузере, для этого необходимо импортировать корневой сертификат rootCA.crt
в хранилище. Алгоритм выполнения:
- Для Google Chrome - Settings > Advanced > Manage certificates > Authorities > Import;
- Для Firefox - Preferences > Privacy & Security > View Sertificates > Authorities > Import.
Настройка системных сертификатов¶
Centos:
update-ca-trust enable cp rootCA.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust extract
Ubuntu:
sudo mkdir /usr/share/ca-certificates/extra sudo cp rootCA.crt /usr/share/ca-certificates/extra/rootCA.crt sudo dpkg-reconfigure ca-certificates sudo update-ca-certificates