====== Настройка ПО "UniServer AUTO" для работы по протоколу HTTPS ======
Для корректной работы системы по протоколу HTTPS при первом запуске ПО генерирует 2 сертификата:
- **Корневой сертификат** (срок действия 10 лет)
- **Рабочий сертификат** (срок действия 90 дней)
Корневой сертификат необходимо установить вручную на каждом компьютере-клиенте, который будет подключаться к ПО по протоколу HTTPS.
Во время работы система периодически проверяет срок действия рабочего сертификата и если до его окончания остается менее 10 дней - автоматически перевыпускает его.
В ПО "UniServer AUTO" реализовано 2 способа выпуска рабочего сертификата:
- **Создание сертификата сервером самостоятельно** - подходит для взаимодействия с сервером с помощью IP адреса или доменного имени в локальной сети или с помощью "белого" IP адреса для взаимодействия через интернет.
- **Получение сертификата от сервера ACME** - подходит для взаимодействия с сервером с помощью доменного имени через интернет.
Для корректной работы ПО по протоколу HTTPS необходимо использовать ОС Windows Vista и выше.
===== Вариант 1. Настройка самостоятельного выпуска сертификатов HTTPS =====
==== Создание сертификата сервером самостоятельно ====
- Откройте файл **EventServer.ini** в каталоге **\UniServerAUTO\BIN20\BIN64**
- Укажите значение параметра **Tls=1**
- Укажите нужное значение HTTPS порта (**по умолчанию TlsPort=8443**)
- Укажите значение параметра **Fqdn** - перечислите через "," полное доменное имя сервера или IP адреса по которым клиенты будут обращаться к серверу. Например: **Fqdn=myserver.local, IP:192.168.0.42**
- Сохраните файл и перезапустите сервер
[Server]
Tls=1
TlsPort=8443
Fqdn=myserver, myserver.local, IP:192.168.0.42
В дальнейшем каждый раз, после изменения параметра **Fqdn**, необходимо перевыпустить сертификат. Для этого удалите файлы имеющиеся в папке **DATA/CA/** и перезапустить сервер!
После сохранения файла и перезапуска сервера будут сгенерированы корневой и рабочий сертификаты в папке сервера **Data\CA\certs\rootca.crt**. Корневой сертификат необходимо вручную установить на каждом компьютере-клиенте, который будет подключаться к ПО по протоколу HTTPS.
Далее перейдите к пункту "Установка корневого сертификата на клиентском ПК"
==== Установка корневого сертификата на клиентском ПК ====
На каждом клиенте, который будет подключаться к серверу по HTTPS, необходимо установить корневой сертификат сервера в хранилище «Доверенные центры сертификации». Сделать это можно вручную, либо с помощью доменных политик или запуска скрипта на каждом клиенте.
Файл корневого сертификата **rootca.ctr** можно двумя способами:
- В каталоге **/UniServer AUTO/BIN20/DATA/CA/certs/**
- Скачать с сервера по адресу **%%http://<адрес сервера>:<порт>/core/rootca.crt%%**
Для установки сертификата выполните следующие действия:
- Дважды кликните по файлу **rootca.ctr**
- В открывшемся окне выберите "**Установить сертификат**" {{ uniserver:https:1.png?direct&300 }} \\
- В окне «**Мастер импорта сертификатов**» выберите «**Локальный компьютер**» → нажмите «**Далее**» {{ uniserver:https:2.png?direct&400 }} \\
- Выберите «**Поместить все сертификаты в следующее хранилище**» → нажмите «**Обзор**» → выберите «**Доверенные корневые центры сертификации**» → нажмите «**Далее**» {{ uniserver:https:3.png?direct&400 }} \\
- В окне «**Завершение мастера импорта сертификатов**» нажмите «**Готово**» → выберите «**ОK**» {{ uniserver:https:4.png?direct&400 }} \\
На этом установка корневого сертификата завершена.
Так же сертификат можно установить с помощью утилиты certmgr.exe из Windows SDK ([[https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/|https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/]])
Команда для установки certmgr.exe /add rootca.crt /s /r localMachine root /all
Не забудьте после установке сертификата обязательно перезапустите браузер в котором будите работать!
===== Вариант 2. Настройка получения сертификатов HTTPS от сервера ACME =====
UniServer AUTO может получать сертификаты от сервера ACME (Automatic Certificate Management Environment).
В качестве сервера ACME, выдающего сертификаты, может быть использован **https://letsencrypt.org/** (если есть доступ к серверу из интернета), специально созданный сервер (**https://smallstep.com/blog/private-acme-server/**) или Windows Server Active Directory Certificate Services через промежуточную службу (**https://github.com/glatzert/ACME-Server-ACDS**). \\ \\ Чтобы сервер ACME, например Let's Encrypt, мог проверить принадлежность домена, обычный HTTP сервер должен работать на порту 80. \\ \\ Принадлежность домена определяется через запрос страницы вида **http://myserver.example.com/.well-known/acme-challenge/8LxPlzYN...9vzCdduk**. Если сервер ответит правильно, то считается, что домен **myserver.example.com** действительно принадлежит вам, и вы можете получить TLS-сертификат для этого домена.
==== Включение шифрованного транспортного механизма TLS и настройка ====
- Откройте файл **EventServer.ini** в каталоге **\UniServerAUTO\BIN20\BIN64**
- Укажите значение параметра **Tls=1**
- Укажите значение параметра **Port=80**
- Укажите значение параметра **TlsPort=443**
- Укажите значение параметра **Fqdn** - перечислите через "," полное доменное имя сервера по которому клиенты будут обращаться к нему. Можно указать несколько имен, разделяя их запятыми (сервер ACME будет проверять все имена, поэтому все они должны быть для него доступны). Например: **Fqdn=myserver.example.com**
- В параметре **AcmeUrl** укажите URL каталога сервера ACME. Например: **%%AcmeUrl=https://acme-v02.api.letsencrypt.org/directory%%**
- Сохраните файл и перезапустите сервер
[Server]
Tls=1
Port=80
TlsPort=443
Fqdn=myserver.example.com
AcmeUrl=https://acme-v02.api.letsencrypt.org/directory
Выдача сертификатов для IP-адресов обычно не поддерживается серверами ACME.