Настройка https для консоли виртуальной машины

Для настройки работы консоли виртуальной машины через https необходимо выполнить следующее:

ldaps

  1. Скопируйте открытый ключ шифрования протокола ldap в /etc/keystone/domains:

    #nano /etc/keystone/domains/keystone.main.conf
    
  2. В разделе [ldap] измените:

    url = ldaps://0.0.0.0:636
    tls_cacertfile = /etc/keystone/domains/dc01-ldap.crt
    tls_req_cert = never
    
  3. Перезапустите службу systemctl restart keystone.

Включение ssl на nginx

  1. Скопируйте открытый и закрытый ключи сервера в /etc/aos/crt, измените владельца файлов:

    #chown aos:aos /etc/aos/crt/*
    
  2. Установите корневой сертификат в /etc/ssl/certs/ca-certificates.crt, для этого скопируйте его в /usr/local/share/CA.crt и запустите:

    #update-ca-certificates
    #nano /etc/nginx/sites-available/dashboard.conf (вверху 6 строк)
    server {
        listen 443 ssl;
        server_name ssl_;
        charset utf-8;
        ssl on;
        ssl_certificate          /etc/aos/crt/aos.domain.ru.crt;
        ssl_certificate_key /etc/aos/crt/aos.domain.ru.key;
    
        root /usr/share/openstack-dashboard;
    
        client_body_temp_path      /tmp/nginx_upload;
        client_body_in_file_only   off;
        client_body_buffer_size    1M;
        client_max_body_size       100G;
    
        location / {
            try_files $uri @uwsgi;
        }
    
        location @uwsgi  {
            uwsgi_pass      127.0.0.1:3080;
            #uwsgi_pass      unix:/run/uwsgi/dashboard.sock;
            include         uwsgi_params;
            uwsgi_buffer_size 32k;
            uwsgi_buffers 8 32k;
    #       #uwsgi_param     SCRIPT_NAME  /horizon;
    #       #uwsgi_modifier1 30;
            uwsgi_read_timeout 600;
            uwsgi_send_timeout 600;
    #       uwsgi_next_upstream_timeout 600;
            uwsgi_connect_timeout 600;
    #       uwsgi_cache_lock_timeout 600;
        }
        location /static  {
            alias /var/lib/openstack-dashboard/static;
        }
        #location /horizon/static  {
        #   alias /var/lib/openstack-dashboard/static;
        #}
    }
    
  3. Перезапустите службу:

    #systemctl restart nginx
    

RSclient

  1. Остановите службу RSserver aos-rs-listener.service:

    #systemctl stop aos-rs-broker-api.service
    
    #nano /usr/lib/systemd/system/aos-rs-broker-api.service
    
  2. Добавьте пути:

    ExecStart=/usr/bin/gunicorn3 -- certfile=/etc/aos/aos.domain.ru.crt --keyfile/etc/aos/aos.domain.ru.key --bind=0.0.0.0:9365 --workers=3 --threads=10 rs_server.api.broker_api.wsgi
    
  3. Выполните обновление файлов для systemd:

    #systemctl daemon-reload
    
  4. Запустите службу:

    #systemctl start aos-rs-broker-api.service
    
  5. Создайте файл цепочки сертификата сервера:

    #cat /etc/aos/aos.domain.crt > ./aos-certs.crt
    #cat /usr/local/share/CA.crt >> ./aos-certs.crt
    
  6. Скопируйте эту цепочку на хост с RSclient, откройте файл настройки:

    Windows:

    C:\Users\UserName\.rsclient\client.conf, дописываем
    ca_bundle_path = C:\Users\UserName\.rsclient\aos-certs.crt
    

    Astra:

    /home/user/.rsclient/client.conf
    ca_bundle_path = /home/user/.rsclient/aos-certs.crt
    use_smartcard = False
    

Работа с сертификатами

Требуется запросить сертификат, подписывается CA MS (attrib — выбираем нужный шаблон «certificatetemplate:test», test — имя шаблона):

#> certreq.exe -attrib  "certificatetemplate:test" -submit .\test-linux.csr

Сохраните ответ ЦС в файл:

#> certreq -retrieve 52 (ID сертификата)

Установите корневой сертификат в /etc/ssl/certs/ca-certificates.crt.

Также требуется скопировать сертификаты на ноды и контроллеры, в /etc/nova/nova.conf добавьте:

ssl_only = False (возможно True правильнее)
cert = /etc/nova/ssl/domain.ru.crt
key = /etc/nova/ssl/domain.ru.key

На нодах в разделе vnc замените novncproxy_base_url = https://ko-controller.aos.loc:6080/vnc_auto.html.

В конфиг добавьте адрес текущего DNS-сервера.

Перезапустите службу nova-compute.