Настройка доступа к 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

  1. Установите пакет c SSL-модулем для Apache:

    yum install -y mod_ssl
    
  2. Скопируйте файлы сертификата и ключа:

    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
    
  3. Создайте или скопируйте конфигурационный файл для 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>
    
  4. Перезапустите HTTP-сервер:

    systemctl restart httpd
    

Ubuntu

  1. Включите поддержку модуля SSL для Apache:

    a2enmod ssl
    
  2. Скопируйте файлы сертификата и ключа:

    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
    
  3. Создайте или скопируйте файл конфигурации для 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>
    
  4. Разрешите использование конфигурационного файла:

    ln -sf /etc/apache2/conf-available/tionix-vdi-server-ssl.conf \
    /etc/apache2/conf-enabled/tionix-vdi-server-ssl.conf
    
  5. Перезапустите HTTP-сервер:

    service apache2 restart
    

ALT Linux

  1. Установите пакет c SSL-модулем для Apache:

    apt-get install -y apache2-mod_ssl
    
  2. Включите поддержку модуля SSL:

    a2enmod ssl
    
  3. Скопируйте файлы сертификата и ключа:

    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
    
  4. Создайте или скопируйте конфигурационный файл для 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>
    
  5. Разрешите использование конфигурационного файла:

    ln -sf /etc/httpd2/conf/sites-available/tionix-vdi-server-ssl.conf \
    /etc/httpd2/conf/sites-enabled/tionix-vdi-server-ssl.conf
    
  6. Перезапустите HTTP-сервер:

    systemctl restart httpd2
    

Пример настройки

Пример настройки доступа к VDI через HTTPS с подписанными сертификатами.

Создание центра сертификации (СА)

  1. Сгенерируйте корневой ключ центра сертификации:

    openssl genrsa -out rootCA.key 4096
    
  2. Сгенерируйте корневой сертификат центра сертификации:

    openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
    

    Где:

    • req - менеджер запросов подписей;
    • x509 - параметр для вывода самозаверяющего сертификата;
    • new - параметр для генерации нового запроса;
    • rootCA.key - наименование файла с ключом;
    • 3650 - срок действия сертификата в днях;
    • rootCA.crt - наименование файла, на который записывается сертификат.

    Примечание

    Более подробная информация доступна на сайте www.openssl.org.

    Поля для ответов на дополнительные вопросы можно оставлять пустыми:

    ../../../_images/generate_root_ca.png

    Процесс создания центра сертификации

    Важно

    • rootCA.crt — можно копировать на сервера, выкладывать в публичный доступ;
    • rootCA.key — необходимо держать в тайне.

Создание сертификата

Создание и подпись сертификата центром сертификации.

  1. Сгенерируйте ключ сервера:

    openssl genrsa -out testeralt.stand.key 4096
    
  2. Создайте запрос на сертификат:

    openssl req -new -key testeralt.stand.key  -out testeralt.stand.csr
    

    В поле "Common Name" укажите домен или IP-адрес:

    ../../../_images/sign_request.png

    Процесс генерации сертификата

  3. Подпишите запрос на создание корневым сертификатом:

    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