# SSL сертификаты

По умолчанию в компонентах HOSTVM VDI используются предустановленные самоподписанные сертификаты. Использование этих сертификатов предполагается для тестовых сред, в остальных случаях рекомендуется установка действительных сертификатов, используемых в конечной инфраструктуре.&#x20;

## **Действия на балансировщике (haproxy)** <a href="#haproxy" id="haproxy"></a>

{% hint style="warning" %}

* Перед началом работ выполните резервное копирование текущих сертификатов для обеспечения возможности возврата к предыдущей конфигурации.
* Действия необходимо выполнить на каждом балансировщике.
  {% endhint %}

### **Требования к сертификату** <a href="#cert-requirements" id="cert-requirements"></a>

* Сертификат и приватный ключ должны быть выпущены на полное доменное имя балансировщика (FQDN), используемое для доступа к брокерам HOSTVM VDI (порталам  пользователя и администратора).
* Указанное FQDN должно соответствовать DNS-записи и статическому виртуальному IP-адресу (VIP) балансировщика.

### **Процедура замены** <a href="#cert-change-procedure" id="cert-change-procedure"></a>

Замените сертификат и приватный ключ, воспользовавшись разделом "Настройка SSL сертификатов" документа ["Установка и настройка балансировщика HAProxy"](/hostvm-vdi/hostvm-vdi-installation-guide/high-availability/haproxy.md#ssl-certificates).

## **Действия на туннелере (шлюзе)** <a href="#tunneler" id="tunneler"></a>

{% hint style="warning" %}
Действия необходимо выполнить на каждом туннелере.
{% endhint %}

### **Добавление корневого сертификата** <a href="#add-ca" id="add-ca"></a>

Добавьте в хранилище доверенных корневых сертификатов CA сертификат центра сертификации, выпустившего сертификат для балансировщика.

Воспользуйтесь одной из нижеприведенных инструкций в зависимости от используемой операционной системы туннелера:

* **РЕД ОС:** "[Сертификаты](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy/red-os.md#certificates)"
* **ALT Linux:** "[Сертификаты](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy/alt-linux.md#certificates)"
* **Debian / Virtual Appliance (OVA):** "[Сертификаты](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy.md#ssl-certificates-35)"

### **Обновление конфигурации туннелера** <a href="#update-config" id="update-config"></a>

После замены сертификатов на балансировщиках и добавления корневого CA сертификата необходимо выполнить обновление конфигурации.

Запустите мастер установки и следуйте его указаниям. Воспользуйтесь одной из нижеприведенных инструкций в зависимости от используемой операционной системы туннелера:

* **РЕД ОС** "[Мастер установки](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy/red-os.md#setup-wizard)"
* **ALT Linux:**"[Мастер установки](/hostvm-vdi/hostvm-vdi-installation-guide/hostvm-vdi-ova-install/alt-linux.md#install)"
* **Debian / Virtual Appliance (OVA):** "[Мастер установки ](/hostvm-vdi/hostvm-vdi-installation-guide/hostvm-vdi-ova-install/debian.md#install)"

Важные моменты при переконфигурации:

* Шаг 1: На вопрос `IP адрес или FQDN брокера:` обязательно укажите FQDN балансировщика, на который выпущен новый сертификат. Не используйте IP-адрес;
* Шаг 2: При авторизации на брокере используйте учетную запись с правами администратора;
* Шаг 3: На вопрос `Хотите сгенерировать новый сертификат? [y/N]:` обязательно ответьте N (нет). Ответ y (да) приведет к генерации самоподписанного сертификата, что нарушит цепочку доверия.

#### Пример успешной конфигурации <a href="#config-example" id="config-example"></a>

```
Добро пожаловать в мастер установки HOSTVM VDI Tunneler.
Этот мастер шаг за шагом проведет вас через процесс установки.
Пожалуйста, заполните все поля корректными значениями.
Тип соединения с брокером (http или https): https
IP адрес или FQDN брокера: hostvm-haproxy.hostvm.test
На брокере доступны следующие аутентификаторы:
hostvm.local
hostvm.test
local
Укажите аутентификатор из списка доступных, либо оставьте пустым, если используете встроенную учетную запись администратора:
Имя пользователя: root
Пароль:
Конфигурация системы...
У вас уже есть сгенерированный сертификат!
Хотите сгенерировать новый сертификат? [y/N]: n
Установка завершена.

```

После успешного выполнения всех шагов убедитесь, что подключение к порталу пользователя и администратора через FQDN балансировщика работает корректно.

#### **Пример типовой ошибки при несоответствии FQDN балансировщика и сертификата** <a href="#common-cert-error" id="common-cert-error"></a>

Если введенный FQDN не совпадает с именем в сертификате балансировщика, система вернет ошибку:

{% code overflow="wrap" %}

```
Ошибка SSL подключения, проверьте действительность сертификата и адрес брокера:
HTTPSConnectionPool(host='hostvm-proxy.hostvm.test', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError("hostname 'hostvm-proxy.hostvm.test' doesn't match 'hostvm-haproxy.hostvm.test'")))  
```

{% endcode %}

В этом случае убедитесь, что в процессе конфигурации вы корректно ввели FQDN балансировщика и установленный на нем сертификат выпущен именно на это имя. После выполнения проверки, запустите повторно обновление конфигурации туннелера.

После успешной замены сертификатов необходимо использовать имя балансировщика (FQDN) [при настройке туннелируемых подключений (транспортов) для работы через балансировщик](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy.md#nastroika-transporta-v-paneli-upravleniya-hostvm-vdi).

Используйте сгенерированный сертификат балансировщика при [настройке сертификатов для HTML5 подключений.](/hostvm-vdi/hostvm-vdi-installation-guide/tunneler-appliance-deploy.md#html5-certificate)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.pvhostvm.ru/hostvm-vdi/hostvm-vdi-installation-guide/high-availability/ssl-certificates.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
